eci_channel.h
Go to the documentation of this file.
1 /*
2  MODULE NAME eci_channel.h
3 
4  DESCRIPTIVE NAME CICS Transaction Gateway ECI and ESI Version 2.3
5  Application Programming Interface, Channels and
6  Containers Parts
7 
8  Service level: V9.0.0.2
9  <copyright
10 notice="rm-source-program"
11 pids="5724-I81,5725-B65,5655-Y20"
12 years="2010,2012"
13 crc="358634685" >
14 Licensed Materials - Property of IBM
15 
16 "Restricted Materials of IBM"
17 
18 5724-I81,5725-B65,5655-Y20
19 
20 (C) Copyright IBM Corp. 2010, 2012
21 
22 US Government Users Restricted Rights - Use, duplication or
23 disclosure restricted by GSA ADP Schedule Contract with
24 IBM Corp.
25 </copyright>
26 
27  Status: Version 9 Release 0
28 
29  NOTES :-
30 
31  This header file is provided with the CICS Transaction Gateway. These
32  products are available for a number of different operating environments
33  and to ensure the correct sections of this header are included, one of
34  the following constants must be defined prior to inclusion:
35 
36  CICS_W32 - if building a Windows application
37  CICS_AIX - if building an AIX application
38  CICS_SOL - if building a Solaris application
39  CICS_LNX if building a Linux application
40  CICS_HPIT and CICS_HPUX -
41  if building an HPUX application on Itanium
42 */
49 #ifndef _ECI_CHANNEL_H
50 #define _ECI_CHANNEL_H
51 
52 #include <stdlib.h>
53 
54 #if defined (CICS_W32) || defined(CICS_WNT)
55  #define CICSCALL __cdecl
56 #else
57  #define CICSCALL
58 #endif
59 
60 
61 #if !defined(_LP64) && !defined(__LP64__) && !defined(_WIN64) && !defined(__64BIT__)
62 #if defined(CICS_AIX)
63 #pragma options align=packed
64 #elif defined(CICS_HPUX)
65 #pragma pack 1
66 #else
67 #pragma pack(1)
68 #endif
69 #endif
70 
71 
72 
74 typedef struct _ECI_Channel_t* ECI_ChannelToken_t;
75 
77 #define ECI_NULL_CHANNELTOKEN (ECI_ChannelToken_t) NULL
78 
79 
81 typedef enum {
82 
84  ECI_BIT = 0x01,
85 
87  ECI_CHAR = 0x02
88 
90 
91 
93 typedef struct {
94 
95  #define ECI_CONTAINERNAME_LENGTH 16
96 
97  char name[ECI_CONTAINERNAME_LENGTH + 1];
98 
101 
105  int ccsid;
106 
108  size_t dataLength;
109 
111 
112 
113 #define ECI_CHANNELNAME_LENGTH 16
114 
115 
157 int CICSCALL ECI_createChannel(const char* name,
158  ECI_ChannelToken_t* tokPtr);
159 
178 
179 
192 
193 
214  char* nameBuffer);
215 
216 
242  ECI_CONTAINER_INFO* infoPtr);
243 
244 
283  ECI_CONTAINER_INFO* infoPtr);
284 
285 
342  const char* name,
343  ECI_CONTAINER_TYPE type,
344  const int ccsid,
345  const void* data,
346  size_t dataLength);
347 
348 
367  const char* name);
368 
369 
391  const char* name,
392  ECI_CONTAINER_INFO* infoPtr);
393 
394 
428  const char* name,
429  void* buffer,
430  size_t length,
431  size_t offset,
432  size_t* bytesReadPtr);
433 
434 
463  const char* name,
464  const void* data,
465  size_t dataLength);
466 
467 
469 #define ECI_NO_ERROR 0
470 
472 #define ECI_ERR_INVALID_DATA_LENGTH -1
473 
475 #define ECI_ERR_SYSTEM_ERROR -9
476 
478 #define ECI_ERR_INVALID_CHANNEL -50
479 
481 #define ECI_ERR_INVALID_NAME -51
482 
484 #define ECI_ERR_NULLCHANNELPTR -52
485 
487 #define ECI_ERR_CHANNELLOCKFAIL -53
488 
490 #define ECI_ERR_ENDOFCONTAINERS -54
491 
493 #define ECI_ERR_NULLINFOPTR -55
494 
496 #define ECI_ERR_INVALID_TYPE -56
497 
499 #define ECI_ERR_CONTAINER_NOTFOUND -58
500 
502 #define ECI_ERR_CONTAINER_EXISTS -59
503 
505 #define ECI_ERR_COMMAREA_AND_CHANNEL -60
506 
508 #define ECI_ERR_NULLPTR -109
509 
512 #define ECI_ERR_MEMORY_SHORTAGE -111
513 
515 #define ECI_ERR_LOCKFAIL -121
516 
517 
518 
519 #if !defined(_LP64) && !defined(__LP64__) && !defined(_WIN64) && !defined(__64BIT__)
520 #if defined(CICS_AIX)
521 #pragma options align=reset
522 #elif defined(CICS_HPUX) && defined(__cplusplus)
523 #pragma pack
524 #elif defined(CICS_HPUX) && defined(CICS_HPIT)
525 #pragma pack
526 #elif defined(CICS_HPUX)
527 #pragma HP_ALIGN HPUX_NATURAL
528 #else
529 #pragma pack()
530 #endif
531 #endif
532 
533 
534 #endif /* _ECI_CHANNEL_H */
535