/* IBM_PROLOG_BEGIN_TAG                                                   */
/* This is an automatically generated prolog.                             */
/*                                                                        */
/* bos72Q src/bos/kernel/ios/coprocessor.h 1.3                            */
/*                                                                        */
/* Licensed Materials - Property of IBM                                   */
/*                                                                        */
/* Restricted Materials of IBM                                            */
/*                                                                        */
/* COPYRIGHT International Business Machines Corp. 2010,2019              */
/* All Rights Reserved                                                    */
/*                                                                        */
/* US Government Users Restricted Rights - Use, duplication or            */
/* disclosure restricted by GSA ADP Schedule Contract with IBM Corp.      */
/*                                                                        */
/* IBM_PROLOG_END_TAG                                                     */
/* @(#)62     1.3  src/bos/kernel/ios/coprocessor.h, sysios, bos72Q, q2019_13A4 2/6/19 00:41:47 */
#ifndef _h_COPRO
#define _h_COPRO

/*
 * COMPONENT_NAME: (SYSIOS) Character I/O header file
 *
 * ORIGINS: 27
 *
 */

#include <sys/kerrno.h>

#ifdef __cplusplus
extern "C" {
#endif

/*
 * Coprocessor Management Error Definitions
 */

#define	EINVAL_COPROCESSOR_NOT_SUPPORTED1 KERROR(EINVAL, sysios_BLOCK_00, 20)
#define	EINVAL_COPROCESSOR_NOT_SUPPORTED2 KERROR(EINVAL, sysios_BLOCK_00, 21)
#define	EINVAL_COPROCESSOR_NOT_SUPPORTED3 KERROR(EINVAL, sysios_BLOCK_00, 22)
#define	EINVAL_COPROCESSOR_NOT_SUPPORTED4 KERROR(EINVAL, sysios_BLOCK_00, 23)
#define	EINVAL_INTR_CONTEXT1              KERROR(EINVAL, sysios_BLOCK_00, 24)
#define	EINVAL_INTR_CONTEXT2              KERROR(EINVAL, sysios_BLOCK_00, 25)
#define	EINVAL_COPROCESSOR_TYPE1          KERROR(EINVAL, sysios_BLOCK_00, 26)
#define	EINVAL_COPROCESSOR_TYPE2          KERROR(EINVAL, sysios_BLOCK_00, 27)
#define	EINVAL_COPROCESSOR_TYPE3          KERROR(EINVAL, sysios_BLOCK_00, 28)
#define	EINVAL_COPROCESSOR_TYPE4          KERROR(EINVAL, sysios_BLOCK_00, 29)
#define	EINVAL_ALREADY_REGISTERED         KERROR(EINVAL, sysios_BLOCK_00, 30)
#define	EINVAL_NOT_REGISTERED1            KERROR(EINVAL, sysios_BLOCK_00, 31)
#define	EINVAL_NOT_REGISTERED2            KERROR(EINVAL, sysios_BLOCK_00, 32)
#define EBUSY_ALL_PID_REGS_VAL_IN_USE	  KERROR(EBUSY,  sysios_BLOCK_00, 33)

/*
 * Coprocessor Management Kernel Services Function Prototypes
 */

kerrno_t coprocessor_user_register (int, unsigned int *);
kerrno_t coprocessor_user_unregister (int);

#ifdef __cplusplus
}
#endif

#endif /* _h_COPRO */
