#ifdef __cplusplus
extern "C" {
#endif
#ifndef H_SCCSID
#include <sccs.h>
#endif /* ! H_SCCSID */
H_SCCSID(@(#)msg10.h	1.9	AIX PS/2)	/* Modified: 12/20/89 16:55:04 */

/* @(#)msg10.h	7.1 - 87/06/16 - 00:01:29 */
/* @(#)msg10.h	7.1 87/06/16 00:01:29 */
/* 
 * (C) Copyright IBM Corp. 1989 
 * All Rights Reserved 
 * Licensed Materials - Property of IBM 
 */
#ifndef mSg10
#define mSg10   mSg10

/***************************************************************************
*  msg10.h - Message/Insert/Help File Format Definitions                   *
***************************************************************************/

struct filehdr     { /*** FILE HEADER ***/
       char            unique[8];     /* unique file identifier "MSGSFILE"*/
       unsigned short  version;       /* file format version #            */
       unsigned short  numcomp;       /* # component entries in file      */
       };

struct cmp_indx    { /*** ENTRY IN COMPONENT INDEX TABLE ***/
       char            compid[6];     /* component ID                     */
       char            langid[2];     /* language ID                      */
       unsigned short  flags;         /* reserved for flags (zero)        */
       unsigned short  maxnum[3];     /* max index numbers used for
					 messages, inserts, & helps       */
       unsigned long   offset[3];     /* offsets to msg, insert, & help
					 index tables from start of file  */
       unsigned long   reserved;      /* reserved for future use (zero)   */
       };

		     /*** FORMAT OF HEADER FOR ENTRIES IN THE  ***/
		     /*** MESSAGE, INSERT, & HELP INDEX TABLES ***/
		     /*** (NOTE THAT EACH INDEX TABLE MUST BE  ***/
		     /*** ALIGNED ON A LONG INTEGER BOUNDARY)  ***/
#define MSGHEADR                                                           \
       char            compid[6];    /* component ID for text source       \
					file ('======' or 'common')      */\
       unsigned short  index;        /* index # for text source (zero      \
					indicates same index #)          */\
       unsigned long   offset;       /* offset to text from start of       \
					index table                      */\
       unsigned short  textlen;      /* text length (not incl null term) */\
       unsigned short  version;      /* version # (zero for original)    */\
       unsigned short  flags;        /* flags                              \
					  01 off:  status = null           \
					      on:  status = current        \
					  (other flags reserved (zero))  */\
       unsigned short  reserve1;     /* reserved for future use (zero)   */

		     /*** FLAG DEFINITIONS FOR MSGHEADR ***/
#define mih_status 0x0001             /* off (0):  status = null
					  on (1):  status = current       */

struct ins_indx    { /*** ENTRY IN INSERT INDEX TABLE  ***/
		     /*** (CONTAINS HEADER INFO. ONLY) ***/
       MSGHEADR                       /* header info.                     */
       };

struct mih_indx    { /*** ENTRY IN MESSAGE OR HELP INDEX TABLES.  MAY ***/
		     /*** ALSO BE USED AS ENTRY IN INSERT INDEX TABLE ***/
		     /*** IF ONLY HEADER INFO. IS REFERENCED.         ***/
       MSGHEADR                       /* header info.                     */
       unsigned short  titlelen;      /* title length (not incl null term)*/
       char            dcompid[3];    /* displayed component ID           */
       char            dmsgid[3];     /* displayed message ID             */
       short           helpindx;      /* help index # (zero if no help,
					 negative if help in common file) */
       unsigned short  reserved;      /* reserved for future use (zero)   */
       };

#endif
#ifdef __cplusplus
}
#endif
