/****************************************************************************
 *
 *	Copyright (C) 1984-2006 Micro Focus (IP) Limited.
 *
 *	All rights reserved.  Unpublished, all rights reserved under
 *	copyright law and international treaty.  Use of a copyright notice
 *	is precautionary only and does not imply publication or disclosure.
 *	This software contains confidential information and trade secrets of
 *	Micro Focus International Ltd, and no part of this program or
 *	publication may be reproduced, transmitted, transcribed, stored in
 *	a retrieval system, or translated into any language or computer
 *	language, in any form or by any means, electronic, mechanical,
 *	magnetic, optical, chemical, manual or otherwise, without the prior
 *	written permission of:
 *
 *	Micro Focus International Ltd,
 *	The Lawn, Old Bath Road, Newbury, Berkshire, RG14 1QN, UK.
 *	(01635) 32646
 *
 *	RESTRICTED RIGHTS LEGEND
 *	Use, duplication, or disclosure by the Government is subject to
 *	restrictions as set forth in subparagraph (c)(1)(ii) of the Rights
 *	in Technical Data and Computer Software clause at DFARS 52.227-7013
 *	or subparagraphs (c)(1) and (2) of Commercial Computer Software -
 *	Restricted Rights at 48 CFR 52.227-19, as applicable.  Contact
 *	Micro Focus International Ltd, 701 East Middlefield Road,
 *	Mountain View, California 94043, USA.
 *
 *	Genesis Run Time System (Studio/Server 5.0 Freeze)
 *
 *	@(#)cobgetput.h	11.1
 *
 *	Last Modified on 05/01/28 at 10:06:16
 *
 ****************************************************************************/

/** Start of source module cobgetput.h **/

#ifndef _COBGETPUT_H
#define _COBGETPUT_H

/* This file, which is supplied in $COBDIR/include, prototypes the documented
 * cob prefix get/put functions
 */

#ifdef	__cplusplus
extern "C" {
#endif

#include "cbltypes.h"    /* Includes cobtypes.h */

cobuns8_t   cobget_x1_compx(const cbl_x1_compx_t *);
cobuns16_t  cobget_x2_compx(const cbl_x2_compx_t *);
cobuns32_t  cobget_x4_compx(const cbl_x4_compx_t *);
cobuns64_t  cobget_x8_compx(const cbl_x8_compx_t *);

cobuns8_t   cobget_x1_comp5(const cbl_x1_comp5_t *);
cobuns16_t  cobget_x2_comp5(const cbl_x2_comp5_t *);
cobuns32_t  cobget_x4_comp5(const cbl_x4_comp5_t *);
cobuns64_t  cobget_x8_comp5(const cbl_x8_comp5_t *);

cobs8_t     cobget_sx1_comp5(const cbl_sx1_comp5_t *);
cobs16_t    cobget_sx2_comp5(const cbl_sx2_comp5_t *);
cobs32_t    cobget_sx4_comp5(const cbl_sx4_comp5_t *);
cobs64_t    cobget_sx8_comp5(const cbl_sx8_comp5_t *);

cobuns64_t  cobget_xn_comp5(const cbl_x1_t *, cobuns8_t  /* 'n' */ );
cobuns64_t  cobget_xn_compx(const cbl_x1_t *, cobuns8_t  /* 'n' */ );

cobs64_t    cobget_sxn_comp5(const cbl_x1_t *, cobuns8_t /* 'n' */ );

void       *cobget_pointer(const cbl_pointer_t *);
PFR         cobget_ppointer(const cbl_ppointer_t *);

void        cobput_x1_compx(cbl_x1_compx_t *, cobuns8_t);
void        cobput_x2_compx(cbl_x2_compx_t *, cobuns16_t);
void        cobput_x4_compx(cbl_x4_compx_t *, cobuns32_t);
void        cobput_x8_compx(cbl_x8_compx_t *, cobuns64_t);

void        cobput_x1_comp5(cbl_x1_comp5_t *, cobuns8_t);
void        cobput_x2_comp5(cbl_x2_comp5_t *, cobuns16_t);
void        cobput_x4_comp5(cbl_x4_comp5_t *, cobuns32_t);
void        cobput_x8_comp5(cbl_x8_comp5_t *, cobuns64_t);

void        cobput_sx1_comp5(cbl_sx1_comp5_t *, cobs8_t);
void        cobput_sx2_comp5(cbl_sx2_comp5_t *, cobs16_t);
void        cobput_sx4_comp5(cbl_sx4_comp5_t *, cobs32_t);
void        cobput_sx8_comp5(cbl_sx8_comp5_t *, cobs64_t);

void        cobput_xn_comp5(cbl_x1_t *, cobuns8_t  /* 'n' */, cobuns64_t);
void        cobput_xn_compx(cbl_x1_t *, cobuns8_t  /* 'n' */, cobuns64_t);

void        cobput_sxn_comp5(cbl_x1_t *, cobuns8_t /* 'n' */, cobs64_t);

void        cobput_pointer(cbl_pointer_t *, void *);
void        cobput_ppointer(cbl_ppointer_t *, PFR);

#ifdef	__cplusplus
}
#endif

#endif /* _COBGETPUT_H */

/** End of source module cobgetput.h **/
