[ Next Article | Previous Article | Book Contents | Library Home | Legal | Search ]
Files Reference

g32_api.h File

Purpose

Contains associated API symbol definitions and data structures.

Description

The /usr/include/g32_api.h file provides data definitions and structures for use with HCON C language subroutines. Each module that uses the HCON API must include the g32_api.h file.

The constants in the g32_api file are:

#define H3270DEV            0
#define SS1                 0x19
/*
 *      Range for logical path ID's.
 */
#define MIN_LPID            0
#define MAX_LPID            25
#define NUM_LPS             26
/* 
 * maximum sessions allowed for single user 
 */
  
#define G32OK               0
#define G32ERROR            -1
#define NO_SESSION          0
#define MODE_3270           1
#define MODE_API            2
#define MODE_API_T          4
#define PEND_DEALLOC        8

The g32_api structure is:

struct g32_api {    /* information and parameter structure  */
    int lpid;       /* logical path id                      */
    int errcode;    /* error code indicator                 */
    int xerrinfo;   /* extra error information              */
    int row;        /* row number                           */
    int column;     /* column number                        */
    int length;     /* length for patterns                  */
    int eventf;     /* message queue ID/file descriptor     */
    int maxbuf;     /* maximum buffer size                  */
    int timeout;    /* timeout of host response             */
};
/*
 *  This structure 
 *  directly corresponded to a Pascal stringptr 
 *  (which equals a char * and int).
 */
struct g32_str {
    char *g_strval;
    int  g_strlength;
};
extern int errno;
/*
 *      Error codes used by the API routines
 */
#define G32_SESS_EXIST   -1  /* A session exists on the logical   */
                             /*path                               */
#define G32_NO_LA        -2  /* There are no free link addresses  */
#define G32_NO_LOG       -5  /* An error occurred while attempting*/
                             /* log onto the host                 */
#define G32_NO_LP        -6  /* No logical path was available     */
#define G32_NO_SESS      -7  /* No session exists for application */
#define G32_EEMU         -8  /* Error starting emulator           */
#define G32_EMALLOC      -9  /* Unable to malloc memory           */
#define G32_EFORK        -10 /* fork failed                       */
#define G32_ENDSESS      -12 /* The host application wishes to    */
                             /* end the session                   */
#define G32_INV_MODE     -13 /* The AIX application is not in     */
                             /* API/API or API/API_T mode         */
#define G32_PARMERR      -15 /* No host application name was      */
                             /* specified for an API or API_T mode*/
                             /*application                        */
#define G32_LINK_CTL     -16 /* The api was unable to get control */
                             /* or the specified logical path     */
#define G32_EREAD        -17 /* An error occurred on a 'read'     */
                             /* system call                       */
#define G32_EWRITE       -18 /* An error occurred on a 'write'    */
                             /* system call                       */
#define G32_ELENGTH      -19 /* The message is more than 32000    */
                             /* bytes long, or negative           */
#define G32_INV_POSITION -20 /* The row or column specification   */
                             /* was invalid                       */
#define G32_INV_PATTERN  -21 /* The pattern presented to a        */
                             /* G32_search was invalid            */
#define G32_SEARCH_FAIL  -23 /* The string was not found in the   */
                             /* presentation space                */
#define G32_EMSGSND      -24 /* The API was not able to send a msg*/
                             /* to the emulator                   */
#define G32_EMSGRCV      -25 /* The API was not able to receive a */
                             /* msg from the emulator             */
#define G32_EIOCTL       -30 /* The ioctl call to driver failed   */
#define G32_NOTACK       -32 /* The synchronization problem, is   */
                             /* missing g32write function in      */
                             /* the host application              */
#define G32_TIMEOUT      -33 /* Timeout occurred waiting for host */
#define G32_NOATTACH     -34 /* data. API could not allocate or   */
                             /* attach to shared buffers          */
#define G32_OVERRUN      -35 /* Host application overran buffer   */
#define G32_CONN_FAIL    -36 /* Daemon call  connect link failed  */
                             /* Probably means the session name is*/
                             /* already in use                    */
#define G32_ATTN         -37 /* The host application was inter-   */
                             /* rupted with either a SYSREQ or an */
                             /*ATTN key.                          */
                             /* The AIX application should clean  */
                             /*up and exit. */
/*
 *      Codes returned by g32_get_status
 */
#define G32_NO_ERROR     0
#define G32_COMM_CHK    -1
#define G32_PROG_CHK    -2
#define G32_MACH_CHK    -3
#define G32_FATAL_ERROR -4
#define G32_COMM_REM    -5
/*
 *      constants used in g32_openx
 */
#define ASCII_1         061
#define ASCII_9         071
/*
 *      length of header
 */
#define HEADER_LENGTH   12
/*
 *      values for emulator quit message
 */
#define QUIT_BYTE1      0x03
#define QUIT_BYTE2      0x01
#define QUIT_BYTE3      0x00
/*
 *      values used in g_sea_xlate
 */
#define HEXa0           0xa0
#define HEXb4           0xb4
#define HEXb5           0xb5
#define HEXc0           0xc0
#define HEXe6           0xe6
/*
 *      values used in g32_alloc and g32_write
 */
#define MAX_BUF_DIV_256 7
#define MAX_BUF_MOD_256 8

Implementation Specifics

The g32_api.h file is part of the Host Connection Program (HCON).

This file requires the use of a C compiler.

Related Information

List of HCON Programming References in 3270 Host Connection Program 2.1 and 1.3.3 for AIX: Guide and Reference.


[ Next Article | Previous Article | Book Contents | Library Home | Legal | Search ]