/* IBM_PROLOG_BEGIN_TAG                                                   */
/* This is an automatically generated prolog.                             */
/*                                                                        */
/* bos72X src/bos/kernel/sys/kerrno.h 1.61.4.31                           */
/*                                                                        */
/* Licensed Materials - Property of IBM                                   */
/*                                                                        */
/* COPYRIGHT International Business Machines Corp. 2005,2020              */
/* 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                                                     */
/* @(#)20	1.61.4.31  src/bos/kernel/sys/kerrno.h, syserrchk, bos72X, x2020_46A0 10/30/20 07:39:39 */


/*
 * COMPONENT_NAME: (sysras) RAS Component Infrastructure
 *
 * FUNCTIONS:
 *
 */

#ifndef _H_KERRNO
#define _H_KERRNO

/*
 * NOTE:
 * This header is exported to AIX build environment.
 * This file provides all kernel error code block definitions.  This file
 * is only altered to allocate a new error code block.  Any CMVC track that
 * changes this file must not contain any other files.
 */

/*
 * All kernel functions should return unique and meaningful return codes.
 * Error codes must conform to the global kernel error code guideline.
 * Return codes can be a useful debug aid.  When used properly they can
 * provide critical information about why an error occurred or even identify
 * the return code's origin.  In the releases prior to 5.3, coding guidelines
 * have not been enforced.  The most general style for return codes has been
 * to return errno values.  Returning errno values provides some indication
 * of failure reason, but a 7-bit space is not sufficient to provide unique
 * return codes for all errors.  Also it would be useful if error codes
 * could be globally unique, so that the source of an error can be
 * identified from an error code.
 * Return codes must follow a convention wherever possible.  All kernel
 * interfaces must have a return code of type kerrno_t.  The return code is
 * defined such that zero is defined as success and negative values are
 * kernel error codes.  There are no restrictions placed on positive return
 * values, but kernel error codes must conform to a global error code standard.
 * The kernel error code data type is defined in the ras.h header file as
 * follows:
 *		typedef  	long 	kerrno_t;
 *
 * Global error codes are of type kerrno_t.  They encode three pieces of data.
 * The first is an errno value.  This allows a generic kernel error code to be
 * associated with all specific kernel error codes. Any global error code can
 * be converted to an errno value for purposes of generic error handling or
 * system call return status.  The next two fields are a block and sub-block
 * index.  Block and sub-block values combine to identify a specific kernel
 * error code value.  Two fields are used to allow management of the name
 * space and avoid contention on kernel error code allocation.  Block values
 * are assigned at a component level.  Sub-blocks are used within a component.
 * The fields are combined as follows:
 *
 *	Bit Range	Value			Notes
 *
 *	0:15		0xEEEE		eye-catcher / sign bit
 *	16:31		0		reserved
 *	32		1		sign bit (32-bit kernel)
 *	33:39		errno value	7-bits
 *	40:51		Block		12-bits
 *	52:63		Sub-block	12-bits
 *
 *
 */

#define __KERNNO_BLOCK_MASK	0x00FFF000
#define __KERRNO_SUBBLK_MASK	0x00000FFF
#define __ERRNO_MASK	0x7F000000


#define __KERNNO_BLOCK_SHIFT	12
#define __KERRNO_SUBBLK_WIDTH	12
#define __ERRNO_SHIFT	(__KERNNO_BLOCK_SHIFT+__KERRNO_SUBBLK_WIDTH)
#define __EYEC_SHIFT	48

#ifdef __64BIT__

/* eye catcher for 64bit error code */
#define __EYEC_ERRCODE	0x000000000000EEEEul	/* EEEE */

#endif /* __64BIT__ */

#define	__KERRCODE_NEGATE   0x80000000	/* kernel error codes are negative */

/*
 * Generate errno with block and sub-block values - to be used below.
 */
#define	_KERRNO(_errno, _blk, _subblk)					\
			(__KERRCODE_NEGATE |				\
			((unsigned int)(_errno) << __ERRNO_SHIFT) |	\
			((_blk) << __KERNNO_BLOCK_SHIFT) | (_subblk))

/*
 * The KERROR macro is used to form a kernel error code from errno value,
 * block and sub-block ids.
 */
#ifdef __64BIT__
#define	KERROR(_errno, _blk, _subblk) \
			(kerrno_t)					      \
			(((unsigned long long)__EYEC_ERRCODE << __EYEC_SHIFT) \
				| _KERRNO((_errno), (_blk), (_subblk)))
#else
#define	KERROR(_errno, _blk, _subblk) \
			(kerrno_t)_KERRNO((_errno), (_blk), (_subblk))

#endif

/*
 * Extract the errno value from the kernel error code, if _errcode
 * appears to be a valid kerrno_t.
 * Otherwise, just pass _errcode through as-is.  It's likely just a
 * "normal" errno value.
 */
#ifdef __64BIT__
#define KERROR2ERRNO(_errcode)	((((unsigned long)(_errcode) >> __EYEC_SHIFT) \
					== __EYEC_ERRCODE)		      \
				? (((unsigned int)(_errcode) & __ERRNO_MASK)  \
					>> __ERRNO_SHIFT)		      \
				: (_errcode))
#else
#define KERROR2ERRNO(_errcode)	(((unsigned int)(_errcode) >= 128)	      \
				? (((unsigned int)(_errcode) & __ERRNO_MASK)  \
					>> __ERRNO_SHIFT)		      \
				: (_errcode))
#endif

 /*
  * Guidelines to Adding Entries to this Header File:
  */

  /*
   * o Kernel components allocate their blocks in this file, and allocate
   *   their sub-blocks in a component specific header as described below.
   * o The primary purpose of adding entries to this header is to allocate
   *   a block.
   * o Entries should map a block name to a 12-bit hex value.
   * o The component ownership information for the block should be
   *   listed within the COMMENT next to the definition.
   * o The initial block list covers the following components.
   *   Each component can have up to 8 blocks and each block can have
   *   001-0xfff sub-blocks.
   * o Adding a new block for a component listed here should be pretty
   *   easy - insert to the list below appropriately. But adding a new
   *   component OR adding a 9th block of an existing component should
   *   be in a separate list at the end of this file.
   */

#define	artic_sw_BLOCK_00	0x000	/* artic_sw */
#define	atmif_BLOCK_00		0x008	/* atmif */
#define	atmle_BLOCK_00		0x010	/* atmle */
#define	atmsvc_BLOCK_00		0x018	/* atmsvc */
#define	autofs_BLOCK_00		0x020	/* autofs */

#define	bbldd_BLOCK_00		0x028	/* bbldd */
#define	bluedd_BLOCK_00		0x030	/* bluedd */
#define	cachefskern_BLOCK_00	0x038	/* cachefskern */
#define	cdide_BLOCK_00		0x040	/* cdide */
#define	cfg_nls_BLOCK_00	0x048	/* cfg_nls */

#define	cifs_fs_BLOCK_00	0x050	/* cifs_fs */
#define	cmdmirror_BLOCK_00	0x058	/* cmdmirror */
#define	diagddent_BLOCK_00	0x060	/* diagddent */
#define	diagddfddi_BLOCK_00	0x068	/* diagddfddi */
#define	diagddient_BLOCK_00	0x070	/* diagddient */

#define	diagddtok_BLOCK_00	0x078	/* diagddtok */
#define	diskide_BLOCK_00	0x080	/* diskide */
#define	dispccm_BLOCK_00	0x088	/* dispccm */
#define	dmxhdlc_BLOCK_00	0x090	/* dmxhdlc */
#define	gxme_BLOCK_00		0x098	/* gxme */

#define	ica_BLOCK_00		0x0A0	/* ica */
#define	inputdd_BLOCK_00	0x0A8	/* inputdd */
#define	ips_tun_BLOCK_00	0x0B0	/* ips_tun */
#define	isafd_BLOCK_00		0x0B8	/* isafd */
#define	isamouse_BLOCK_00	0x0C0	/* isamouse */

#define	isatty_BLOCK_00		0x0C8	/* isatty */
#define	kauaidd_BLOCK_00	0x0D0	/* kauaidd */
#define	lanaidd_BLOCK_00	0x0D8	/* lanaidd */
#define	lftdd_BLOCK_00		0x0E0	/* lftdd */
#define	magdd_BLOCK_00		0x0E8	/* magdd */

#define	mauidd_BLOCK_00		0x0F0	/* mauidd */
#define	mintdd_BLOCK_00		0x0F8	/* mintdd */
#define	miragedd_BLOCK_00	0x100	/* miragedd */
#define	mpiopcm_BLOCK_00	0x108	/* mpiopcm */
#define	mrcdd_BLOCK_00		0x110	/* mrcdd */

#define	mtndd_BLOCK_00		0x118	/* mtndd */
#define	onckern_BLOCK_00	0x120	/* onckern */
#define	paud_BLOCK_00		0x128	/* paud */
#define	pci4758_BLOCK_00	0x130	/* pci4758 */
#define	pcibatm_BLOCK_00	0x138	/* pcibatm */

#define	pcibent_BLOCK_00	0x140	/* pcibent */
#define	pciccmdd_BLOCK_00	0x148	/* pciccmdd */
#define	pcichatm_BLOCK_00	0x150	/* pcichatm */
#define	pcictok_BLOCK_00	0x158	/* pcictok */
#define	pcient_BLOCK_00		0x160	/* pcient */

#define	pcigoent_BLOCK_00	0x168	/* pcigoent */
#define	pcigxent_BLOCK_00	0x170	/* pcigxent */
#define	pciiga_BLOCK_00		0x178	/* pciiga */
#define	pcijatm_BLOCK_00	0x180	/* pcijatm */
#define	pcimga_BLOCK_00		0x188	/* pcimga */

#define	pciphxent_BLOCK_00	0x190	/* pciphxent */
#define	pciraid_BLOCK_00	0x198	/* pciraid */
#define	pciscent_BLOCK_00	0x1A0	/* pciscent */
#define	pciscsi_BLOCK_00	0x1A8	/* pciscsi */
#define	pcitok_BLOCK_00		0x1B0	/* pcitok */

#define	pcivent_BLOCK_00	0x1B8	/* pcivent */
#define	peddd_BLOCK_00		0x1C0	/* peddd */
#define	perfstat_BLOCK_00	0x1C8	/* perfstat */
#define	pmapi_BLOCK_00		0x1D0	/* pmapi */
#define	procfs_BLOCK_00		0x1D8	/* procfs */

#define	rcm_BLOCK_00		0x1E0	/* rcm */
#define	rspcios_BLOCK_00	0x1E8	/* rspcios */
#define	rspcios_BLOCK_01	0x1E9	/* capi */
#define	rspcpal_BLOCK_00	0x1F0	/* rspcpal */
#define	sgadd_BLOCK_00		0x1F8	/* sgadd */
#define	sisadd_BLOCK_00		0x200	/* sisadd */

#define	sonoradd_BLOCK_00	0x208	/* sonoradd */
#define	ssaadapdd_BLOCK_00	0x210	/* ssaadapdd */
#define	ssadiskdd_BLOCK_00	0x218	/* ssadiskdd */
#define stnfs_BLOCK_00		0x21C	/* stnfs */
#define	sysdump_BLOCK_00	0x220	/* sysdump */
#define	syserrlg_BLOCK_00	0x228	/* syserrlg */

#define	sysient_BLOCK_00	0x230	/* sysient */
#define	sysios_BLOCK_00		0x238	/* sysios */
#define	sysipc_H_kipc		0x240	/* sysipc kipc.h */
#define	sysj2_BLOCK_00		0x248	/* sysj2 */
#define	sysj2_BLOCK_01		0x249	/* sysj2 */
#define	sysj2_BLOCK_02		0x24A	/* sysj2 */
#define	sysj2_BLOCK_03		0x24B	/* sysj2 */
#define	sysj2_BLOCK_04		0x24C	/* sysj2 */
#define	sysj2_BLOCK_05		0x24D	/* sysj2 */
#define	sysj2_BLOCK_06		0x24E	/* sysj2 */
#define	sysj2_BLOCK_07		0x24F	/* sysj2 */
#define	sysldr_BLOCK_00		0x250	/* sysldr */

#define	syslfs_BLOCK_00		0x258	/* syslfs */
#define	sysmobip6_BLOCK_00	0x260	/* sysmobip6 */
#define	sysnet_BLOCK_00		0x268	/* sysnet */
#define	syspfs_BLOCK_00		0x270	/* syspfs */
#define	sysproc_BLOCK_00	0x278	/* sysproc */
#define sysproc_BLOCK_01        0x279   /* sysproc:proc_private.h */
#define	sysproc_BLOCK_02	0x27A	/* sysproc:watchdog_rtec.h */
#define sysproc_BLOCK_03	0x27B	/* sysproc:clock.c */
#define sysproc_BLOCK_04	0x27C	/* sysproc:smt.c */
#define sysproc_C_tmm_except    0x27D   /* tmm_except.c */
#define sysproc_BLOCK_06    	0x27E   /* sysproc:proc_public.h */
#define sysproc_C_migrate	0x27F	/* sysproc:migrate.c */

#define	sysras_BLOCK_00		0x280	/* sysras */
#define sysras_BLOCK_01		0x281	/* sysras:recovery_internal.h */
#define sysras_BLOCK_02         0x282   /* sysras:raschk.h */
#define sysras_BLOCK_03         0x283   /* sysras:thread_check.h */
#define sysras_BLOCK_04         0x284   /* sysras:etrace.h */
#define sysras_BLOCK_05         0x285   /* sysras:ebuf_mgr.h */
#define sysras_BLOCK_06		0x286	/* sysras:proc_check.h */
#define	sysras_BLOCK_07		0x287	/* sysras:errinj_ctrl.h */
#define	syssec_BLOCK_00		0x288	/* syssec */
#define	syssi_BLOCK_00		0x290	/* syssi */
#define	syssrng_BLOCK_00	0x298	/* syssrng */
#define	systrace_BLOCK_00	0x2A0	/* systrace */

#define	sysvmm_BLOCK_00		0x2B0	/* sysvmm vmuser.h */
#define	sysvmm_BLOCK_01		0x2B1	/* sysvmm xmem.h */
#define	sysvmm_BLOCK_02		0x2B2	/* sysvmm pin.h */
#define	sysvmm_BLOCK_03		0x2B3	/* sysvmm unused */
#define	sysvmm_BLOCK_04		0x2B4	/* sysvmm vmproto.h */
#define	sysvmm_BLOCK_05		0x2B5	/* sysvmm vmpattr.h */
#define	sysx327_BLOCK_00	0x2B8	/* sysx327 */
#define	sysxaio_BLOCK_00	0x2C0	/* sysxaio */
#define	sysxaixif_BLOCK_00	0x2C8	/* sysxaixif */

#define	sysxarray_BLOCK_00	0x2D0	/* sysxarray */
#define	sysxatm_BLOCK_00	0x2D8	/* sysxatm */
#define	sysxbpf_BLOCK_00	0x2E0	/* sysxbpf */
#define	sysxcat_BLOCK_00	0x2E8	/* sysxcat */
#define	sysxcfs_BLOCK_00	0x2F0	/* sysxcfs */

#define	sysxcie_BLOCK_00	0x2F8	/* sysxcie */
#define	sysxdlc_BLOCK_00	0x300	/* sysxdlc */
#define	sysxdisk_BLOCK_00	0x308	/* sysxdisk */
#define	sysxdispgem_BLOCK_00	0x310	/* sysxdispgem */
#define	sysxdispsky_BLOCK_00	0x318	/* sysxdispsky */

#define	sysxdlpi_BLOCK_00	0x320	/* sysxdlpi */
#define	sysxdmx_BLOCK_00	0x328	/* sysxdmx */
#define	sysxdpmp_BLOCK_00	0x330	/* sysxdpmp */
#define	sysxent_BLOCK_00	0x338	/* sysxent */
#define	sysxentchan_BLOCK_00	0x340	/* sysxentchan */

#define	sysxewlm_BLOCK_00	0x348	/* sysxewlm */
#define	sysxfc_BLOCK_00		0x350	/* sysxfc */
#define	sysxfcp_BLOCK_00	0x358	/* sysxfcp */
#define	sysxfd_BLOCK_00		0x360	/* sysxfd */
#define	sysxfddi_BLOCK_00	0x368	/* sysxfddi */

#define	sysxfrca_BLOCK_00	0x370	/* sysxfrca */
#define	sysxide_BLOCK_00	0x378	/* sysxide */

#define	sysxintf_BLOCK_00	0x398	/* sysxintf */
#define	sysxiocp_BLOCK_00	0x3A0	/* sysxiocp */
#define	sysxipfc_BLOCK_00	0x3A8	/* sysxipfc */
#define	sysxiscsi_sw_BLOCK_00	0x3B0	/* sysxiscsi_sw */
#define	sysxlce_BLOCK_00	0x3B8	/* sysxlce */

#define	sysxldbg_BLOCK_00	0x3C0	/* sysxldbg */
#define	sysxlvm_BLOCK_00	0x3C8	/* sysxlvm */
#define	sysxmpa_BLOCK_00	0x3D0	/* sysxmpa */
#define	sysxmpqp_BLOCK_00	0x3D8	/* sysxmpqp */
#define	sysxpciaudio_BLOCK_00	0x3E0	/* sysxpciaudio */

#define	sysxppp_BLOCK_00	0x3E8	/* sysxppp */
#define	sysxprnt_BLOCK_00	0x3F0	/* sysxprnt */
#define	sysxpse_BLOCK_00	0x3F8	/* sysxpse */
#define	sysxpty_BLOCK_00	0x400	/* sysxpty */
#define	sysxqfc_BLOCK_00	0x408	/* sysxqfc */

#define	sysxqfcp_BLOCK_00	0x410	/* sysxqfcp */
#define	sysxqliscsi_BLOCK_00	0x418	/* sysxqliscsi */
#define	sysxqlto_BLOCK_00	0x420	/* sysxqlto */
#define	sysxramd_BLOCK_00	0x430	/* sysxramd */

#define	sysxrif_BLOCK_00	0x438	/* sysxrif */
#define	sysxs128_BLOCK_00	0x440	/* sysxs128 */
#define	sysxscie_BLOCK_00	0x448	/* sysxscie */
#define	sysxsea_BLOCK_00	0x450	/* sysxsea */
#define	sysxses_BLOCK_00	0x458	/* sysxses */

#define	sysxsol_BLOCK_00	0x460	/* sysxsol */
#define	sysxtape_BLOCK_00	0x468	/* sysxtape */
#define	sysxtm_BLOCK_00		0x470	/* sysxtm */
#define	sysxtok_BLOCK_00	0x478	/* sysxtok */
#define	sysxts_BLOCK_00		0x480	/* sysxts */

#define	sysxtty_BLOCK_00	0x488	/* sysxtty */
#define	sysxudf_BLOCK_00	0x490	/* sysxudf */
#define	sysxusb_BLOCK_00	0x498	/* sysxusb */
#define	sysxusb_cdrom_BLOCK_00	0x4A0	/* sysxusb_cdrom */
#define	sysxusb_kbd_BLOCK_00	0x4A8	/* sysxusb_kbd */

#define	sysxusb_mse_BLOCK_00	0x4B0	/* sysxusb_mse */
#define	sysxusb_ufd_BLOCK_00	0x4B8	/* sysxusb_ufd */
#define	sysxvio_BLOCK_00	0x4C0	/* sysxvio */
#define	sysxvonc_BLOCK_00	0x4C8	/* sysxvonc */
#define	sysxx25_BLOCK_00	0x4D0	/* sysxx25 */

#define	sysxxns_BLOCK_00	0x4D8	/* sysxxns */
#define	tmssadd_BLOCK_00	0x4E0	/* tmssadd */
#define	vddrby_BLOCK_00		0x4E8	/* vddrby */
#define	vioent_BLOCK_00		0x4F0	/* vioent */
#define	vlan_BLOCK_00		0x4F8	/* vlan */

#define	wgadd_BLOCK_00		0x500	/* wgadd */
#define sysml_BLOCK_00		0x508	/* sysml:kerrno_ml.h */
#define sysml_BLOCK_01		0x509	/* sysml:amrstack.h*/
#define mstcheck_BLOCK_00	0x510	/* sysproc:mst_check.h */
#define	sysalloc_BLOCK_00	0x518	/* sysalloc: malloc.h */
#define	sysalloc_BLOCK_01	0x519	/* sysalloc: xalloc.h */
#define	sysalloc_BLOCK_02	0x51A	/* sysalloc: ldata_priv.h */
#define	sysalloc_BLOCK_03	0x51B	/* sysalloc: xmlocal.h */
#define	sysalloc_BLOCK_04	0x51C	/* sysalloc: ldata.h */

#define sysras_BLOCK_08         0x520   /* sysras:etrace:tmgr.h */
#define sysras_BLOCK_09         0x521   /* sysras:etrace:pmgr_kerrnos.h */
#define sysras_BLOCK_10         0x522   /* sysras:etrace:etrc_private.h */

#define sysnfs_BLOCK_00         0x600  /* sysnfs  */
#define sysnfs4_BLOCK_01        0x601  /* sysnfs  */
#define sysnfs4_BLOCK_02        0x602  /* sysnfs  */
#define sysnfs4_BLOCK_03        0x603  /* sysnfs  */
#define sysnfs_BLOCK_04         0x604  /* sysnfs  */
#define sysnfs_BLOCK_05         0x605  /* sysnfs  */
#define sysnfs_BLOCK_06         0x606  /* sysnfs  */
#define sysnfs_BLOCK_07         0x607  /* sysnfs  */

#define sysvcm_BLOCK_00		0x620	/* sysvcm */
#define sysxemfc_BLOCK_00       0x630   /* sysxemfc  */
#define sysxemfcp_BLOCK_00      0x638   /* sysxemfcp */

#define sysxemfcnvme_BLOCK_00   0x640   /* sysxemfcnvme */ 

#define	sysxfpga_BLOCK_00	0x650	/* sysxfpga block 0     */
#define	sysxfpga_BLOCK_01	0x651	/* sysxfpga block 1     */

#define	flashsysdisk_BLOCK_00   0x660   /* flashsysdisk         */
/* SYSIPC C Files */
#define sysipc_C_bsr_shm        0x680   /* sysipc shm_bsr.c     */
#define sysipc_C_shm_mem64      0x681   /* sysipc shm_mem64.c   */

/* VMM .c files */
#define sysvmm_C_userio		0x700	/* sysvmm userio.c	*/
#define sysvmm_C_v_alloc	0x701	/* sysvmm v_alloc.c	*/
#define sysvmm_C_v_aptsubs	0x702	/* sysvmm v_aptsubs.c	*/
#define sysvmm_C_v_compsubs	0x703	/* sysvmm v_compsubs.c	*/
#define sysvmm_C_v_cpfsubs	0x704	/* sysvmm v_cpfsubs.c	*/
#define sysvmm_C_v_diosubs	0x705	/* sysvmm v_diosubs.c	*/
#define sysvmm_C_v_disksubs	0x706	/* sysvmm v_disksubs.c	*/
#define sysvmm_C_v_dps		0x707	/* sysvmm v_dps.c	*/
#define sysvmm_C_v_dr		0x708	/* sysvmm v_dr.c	*/
#define sysvmm_C_v_exception	0x709	/* sysvmm v_exception.c	*/
#define sysvmm_C_v_fragsubs	0x70A	/* sysvmm v_fragsubs.c	*/
#define sysvmm_C_v_freelist	0x70B	/* sysvmm v_freelist.c	*/
#define sysvmm_C_v_fssubs	0x70C	/* sysvmm v_fssubs.c	*/
#define sysvmm_C_v_galloc	0x70D	/* sysvmm v_galloc.c	*/
#define sysvmm_C_v_getsubs	0x70E	/* sysvmm v_getsubs.c	*/
#define sysvmm_C_v_getsubs1	0x70F	/* sysvmm v_getsubs1.c	*/
#define sysvmm_C_v_getsubs64	0x710	/* sysvmm v_getsubs64.c	*/
#define sysvmm_C_v_interrupt	0x711	/* sysvmm v_interrupt.c	*/
#define sysvmm_C_v_lgpg		0x712	/* sysvmm v_lgpg.c	*/
#define sysvmm_C_v_lists	0x713	/* sysvmm v_lists.c	*/
#define sysvmm_C_v_lookup	0x714	/* sysvmm v_lookup.c	*/
#define	sysvmm_C_v_lru		0x715	/* sysvmm v_lru.c	*/
#define sysvmm_C_v_lrubylist	0x716	/* sysvmm v_lrubylist.c	*/
#define sysvmm_C_v_lrulist	0x717	/* sysvmm v_lrulist.c	*/
#define sysvmm_C_v_lruphys	0x718	/* sysvmm v_lruphys.c	*/
#define sysvmm_C_v_map		0x719	/* sysvmm v_map.c	*/
#define sysvmm_C_v_mapsubs	0x71A	/* sysvmm v_mapsubs.c	*/
#define sysvmm_C_v_mpsubs	0x71B	/* sysvmm v_mpsubs.c	*/
#define sysvmm_C_v_mvfork	0x71C	/* sysvmm v_mvfork.c	*/
#define sysvmm_C_v_numa		0x71D	/* sysvmm v_numa.c	*/
#define sysvmm_C_v_patch	0x71E	/* sysvmm v_patch.c	*/
#define sysvmm_C_v_pdtsubs	0x71F	/* sysvmm v_pdtsubs.c	*/
#define sysvmm_C_v_pfend	0x720	/* sysvmm v_pfend.c	*/
#define sysvmm_C_v_pinsubs	0x721	/* sysvmm v_pinsubs.c	*/
#define sysvmm_C_v_protsubs	0x722	/* sysvmm v_protsubs.c	*/
#define sysvmm_C_v_psgc		0x723	/* sysvmm v_psgc.c	*/
#define sysvmm_C_v_putsubs	0x724	/* sysvmm v_putsubs.c	*/
#define sysvmm_C_v_relsubs	0x725	/* sysvmm v_relsubs.c	*/
#define sysvmm_C_v_scblist	0x726	/* sysvmm v_scblist.c	*/
#define sysvmm_C_v_scbsubs	0x727	/* sysvmm v_scbsubs.c	*/
#define sysvmm_C_v_segsubs	0x728	/* sysvmm v_segsubs.c	*/
#define sysvmm_C_v_spaceok	0x729	/* sysvmm v_spaceok.c	*/
#define sysvmm_C_v_thrpgio	0x72A	/* sysvmm v_thrpgio.c	*/
#define sysvmm_C_v_trackp	0x72B	/* sysvmm v_trackp.c	*/
#define sysvmm_C_v_wlm		0x72C	/* sysvmm v_wlm.c	*/
#define sysvmm_C_v_xptsubs	0x72D	/* sysvmm v_xptsubs.c	*/
#define	sysvmm_C_vm_ckrs	0x72E	/* sysvmm vm_ckrs.c	*/
#define sysvmm_C_vm_dps		0x72F	/* sysvmm vm_dps.c	*/
#define sysvmm_C_vm_map		0x730	/* sysvmm vm_map.c	*/
#define sysvmm_C_vm_mmap	0x731	/* sysvmm vm_mmap.c	*/
#define sysvmm_C_vm_numa	0x732	/* sysvmm vm_numa.c	*/
#define sysvmm_C_vmadsp		0x733	/* sysvmm vmadsp.c	*/
#define sysvmm_C_vmadsp64	0x734	/* sysvmm vmadsp64.c	*/
#define sysvmm_C_v_affin	0x735	/* sysvmm v_affin.c	*/
#define sysvmm_C_vm_affin	0x736	/* sysvmm vm_affin.c	*/
#define sysvmm_C_vmcleardata	0x737	/* sysvmm vmcleardata.c	*/
#define sysvmm_C_vmcreate	0x738	/* sysvmm vmcreate.c	*/
#define sysvmm_C_vmdelete	0x739	/* sysvmm vmdelete.c	*/
#define sysvmm_C_vmdevices	0x73A	/* sysvmm vmdevices.c	*/
#define	sysvmm_C_vmdr		0x73B	/* sysvmm vmdr.c	*/
#define	sysvmm_C_vmdump		0x73C	/* sysvmm vmdump.c	*/
#define sysvmm_C_vmforkcopy	0x73D	/* sysvmm vmforkcopy.c	*/
#define	sysvmm_C_vmfwad		0x73E	/* sysvmm vmfwad.c	*/
#define sysvmm_C_vmgalloc	0x73F	/* sysvmm vmgalloc.c	*/
#define sysvmm_C_vmgetinfo	0x740	/* sysvmm vmgetinfo.c	*/
#define sysvmm_C_vmint		0x741	/* sysvmm vmint.c	*/
#define sysvmm_C_vmiowait	0x742	/* sysvmm vmiowait.c	*/
#define sysvmm_C_vmkmodules	0x743	/* sysvmm vmkmodules.c	*/
#define sysvmm_C_vmlimits	0x744	/* sysvmm vmlimits.c	*/
#define sysvmm_C_vmlrulist	0x745	/* sysvmm vmlrulist.c	*/
#define sysvmm_C_vmmakep	0x746	/* sysvmm vmmakep.c	*/
#define sysvmm_C_vmmap		0x747	/* sysvmm vmmap.c	*/
#define sysvmm_C_vmmisc		0x748	/* sysvmm vmmisc.c	*/
#define sysvmm_C_vmmisc64	0x749	/* sysvmm vmmisc64.c	*/
#define sysvmm_C_vmmove		0x74A	/* sysvmm vmmove.c	*/
#define sysvmm_C_vmmove64	0x74B	/* sysvmm vmmove64.c	*/
#define sysvmm_C_vmpattr	0x74C	/* sysvmm vmpattr.c	*/
#define sysvmm_C_vmperf		0x74D	/* sysvmm vmperf.c	*/
#define sysvmm_C_vmpinsubs	0x74E	/* sysvmm vmpinsubs.c	*/
#define	sysvmm_C_vmpool		0x74F	/* sysvmm vmpool.c	*/
#define sysvmm_C_vmproc		0x750	/* sysvmm vmproc.c	*/
#define sysvmm_C_vmprotect	0x751	/* sysvmm vmprotect.c	*/
#define	sysvmm_C_vmpsize	0x752	/* sysvmm vmpsize.c	*/
#define	sysvmm_C_vmpspace	0x753	/* sysvmm vmpspace.c	*/
#define sysvmm_C_vmpvlist	0x754	/* sysvmm vmpvlist.c	*/
#define sysvmm_C_vmqmodify	0x755	/* sysvmm vmqmodify.c	*/
#define sysvmm_C_vmras		0x756	/* sysvmm vmras.c	*/
#define	sysvmm_C_vmrelease	0x757	/* sysvmm vmrelease.c	*/
#define	sysvmm_C_vmrmmap	0x759	/* sysvmm vmrmmap.c	*/
#define	sysvmm_C_vmscan		0x759	/* sysvmm vmscan.c	*/
#define sysvmm_C_vmsi		0x75A	/* sysvmm unused	*/
#define	sysvmm_C_vmsi64k	0x75B	/* sysvmm vmsi64k.c	*/
#define	sysvmm_C_vmsi_alloc	0x75C	/* sysvmm vmsi_alloc.c	*/
#define	sysvmm_C_vmsi_common	0x75D	/* sysvmm vmsi_common.c	*/
#define	sysvmm_C_vmsi_lgpage	0x75E	/* sysvmm vmsi_lgpage.c	*/
#define	sysvmm_C_vmsi_rma	0x75F	/* sysvmm vmsi_rma.c	*/
#define	sysvmm_C_vmthrpgio	0x760	/* sysvmm vmthrpgio.c	*/
#define	sysvmm_C_vmtimes	0x761	/* sysvmm vmtimes.c	*/
#define	sysvmm_C_vmusage	0x762	/* sysvmm vmusage	*/
#define sysvmm_C_vmwlm		0x763	/* sysvmm vmwlm.c	*/
#define sysvmm_C_vmwlmbio	0x764	/* sysvmm vmwlmbio.c	*/
#define sysvmm_C_vmwrite	0x765	/* sysvmm vmwrite.c	*/
#define sysvmm_C_vmxmdbg	0x766	/* sysvmm vmxmdbg.c	*/
#define sysvmm_C_xmem		0x767	/* sysvmm xmem.c	*/
#define sysvmm_C_vmloan		0x768	/* sysvmm vmloan.c	*/
#define sysvmm_C_v_stab_64	0x769	/* sysvmm v_stab_64.c	*/
#define sysvmm_C_v_stab_sslb	0x76A	/* sysvmm v_stab_sslb.c	*/
#define sysvmm_C_v_power_64	0x76B	/* sysvmm v_power_64.c	*/
#define sysvmm_C_v_power_lpar	0x76C	/* sysvmm v_power_lpar.c */
#define sysvmm_C_vrme           0x76D   /* sysvmm vrme.c        */
#define sysvmm_C_v_misc64       0x76E   /* sysvmm v_misc64.c    */
#define sysvmm_C_vmahafs	0x76F	/* sysvmm vmahafs.c 	*/
#define sysvmm_C_vmtmm		0x770	/* sysvmm vmtmm.c	*/
#define sysvmm_C_vmcmem		0x771	/* sysvmm vmcmem.c 	*/
#define sysvmm_C_v_cmem 	0x772	/* sysvmm v_cmem.c	*/
#define sysvmm_C_v_cmem_c 	0x773	/* sysvmm v_cmem_c.c	*/
#define sysvmm_C_v_cmem_cmxd 	0x774	/* sysvmm v_cmem_cmxd.c	*/
#define sysvmm_C_vmadsplock	0x775	/* sysvmm vmadsplock.c	*/
#define sysvmm_C_vmadsputil	0x776	/* sysvmm vmadsputil.c	*/
#define sysvmm_C_vmadjunct	0x777	/* sysvmm vmadjunct.c	*/
#define sysvmm_C_vmlsa          0x778   /* sysvmm vmlsa.c       */
#define sysvmm_C_vm_aso		0x779	/* sysvmm vm_aso.c      */
#define sysvmm_C_v_cmem_842bd	0x77A	/* sysvmm v_cmem_842bd.c*/
#define sysvmm_C_vm_chlmb	0x77B	/* sysvmm vm_chlmb.c    */
#define sysvmm_C_vmaccel	0x77C	/* sysvmm vmaccel.c 	*/
#define sysvmm_C_vmcaccel       0x77D   /* sysvmm vmcaccel.c    */
#define sysvmm_C_vmpgzero	0x77E	/* sysvmm vmpgzero.c	*/

/* VMM header files */
#define sysvmm_H_vmm_eyec	0x800	/* sysvmm vmm_eyec.h	*/
#define sysvmm_H_vmras		0x801	/* sysvmm vmras.h	*/
#define sysvmm_H_mplock		0x802	/* sysvmm mplock.h	*/
#define sysvmm_H_vmwlm		0x803	/* sysvmm vmwlm.h	*/
#define sysvmm_H_vmpool		0x804	/* sysvmm vmpool.h	*/
#define sysvmm_H_vm_map		0x805	/* sysvmm vm_map.h	*/
#define sysvmm_H_vminline	0x806	/* sysvmm vminline.h	*/
#define sysvmm_H_vmcmem		0x807	/* sysvmm vmcmem.h	*/
#define sysvmm_H_vmlsa		0x808	/* sysvmm vmlsa.h	*/
#define sysvmm_C_v_vtiol	0x809	/* sysvmm v_vtiol.c	*/
#define sysvmm_H_vmmacs		0x80A	/* sysvmm vmmacs.h	*/
#define sysvmm_H_vmpriv_misc	0x80B	/* sysvmm vmpriv_misc.h	*/

/*
 * Kerrno blocks for the networking subsystem
 * (Naming convention: <CMVC component name>_<source file name (capitalized)>
 */
#define sysnet_NETWORK_RTEC_PRIV_H      0x880   /* kernel/net/network_rtec_private.h */
#define sysxinet_IPV4_KERRNO_H          0x881   /* kernext/inet/ipv4_kerrno.h */
#define sysxinet_ipv6_IPV6_KERRNO_H     0x882   /* kernext/inet/ipv6_kerrno.h */
#define sysxinet_tcp_TCP_KERRNO_H       0x883   /* kernext/inet/tcp_kerrno.h */
#define sysxinet_UDP_KERRNO_H           0x884   /* kernext/inet/udp_kerrno.h */
#define sysxinet_sctp_SCTP_KERRNO_H     0x885   /* kernext/sctp/sctp_kerrno.h */
#define sysuipc_SOCKET_KERRNO_H         0x886   /* kernel/uipc/socket_kerrno.h */
#define sysxqos_QOS_KERRNO_H            0x887   /* kernext/qos/qos_kerrno.h */
#define sysnet_NETWORK_RAS_C            0x888   /* kernel/net/network_ras.c */
#define sysuipc_MBUF_KERRNO_H           0x889   /* kernel/uipc/mbuf_kerrno.h */

#define syscu_BLOCK_00                  0x890   /* syscu */

#define pcirrhba_BLOCK_00       0x900   /* pcirrhba */
#define pcirrhba_BLOCK_01       0x901   /* pcirrhba */
#define pcirrhba_BLOCK_02       0x902   /* pcirrhba */
#define pcirrhba_BLOCK_03       0x903   /* pcirrhba */
#define pcirrhba_BLOCK_04       0x904   /* pcirrhba */
#define pcirrhba_BLOCK_05       0x905   /* pcirrhba */
#define pcirrhba_BLOCK_06       0x906   /* pcirrhba */
#define pcirrhba_BLOCK_07       0x907   /* pcirrhba */
#define pcilibrrhba_BLOCK_00    0x908   /* pcilibrrhba */
#define pcirrent_BLOCK_00       0x910   /* pcirrent */
#define entcom_BLOCK_00         0x911   /* entcom */
#define entcom_BLOCK_01         0x912   /* entcom */
#define entcom_BLOCK_02         0x913   /* entcom */
#define entcom_BLOCK_03         0x914   /* entcom */
#define entcom_BLOCK_04         0x915   /* entcom */
#define entcom_BLOCK_05         0x916   /* entcom */
#define entcom_BLOCK_06         0x917   /* entcom */
#define entcom_BLOCK_07         0x918   /* entcom */

#define sysxloop_BLOCK_00       0x91F   /* bos/kernext/loop/loopras.h */

#define pcirr2ent_BLOCK_00      0x920   /* pcirr2ent */
#define pcirr2ent_BLOCK_01      0x921   /* pcirr2ent */
#define pcirr2ent_BLOCK_02      0x922   /* pcirr2ent */
#define pcirr2ent_BLOCK_03      0x923   /* pcirr2ent */
#define pcirr2ent_BLOCK_04      0x924   /* pcirr2ent */
#define pcirr2ent_BLOCK_05      0x925   /* pcirr2ent */
#define pcirr2ent_BLOCK_06      0x926   /* pcirr2ent */
#define pcirr2ent_BLOCK_07      0x927   /* pcirr2ent */
#define pcirr2ent_BLOCK_08      0x928   /* pcirr2ent */
#define vnic_BLOCK_00           0x929   /* vnic */
#define vnic_BLOCK_01           0x92A   /* vnic */
#define vnic_BLOCK_02           0x92B   /* vnic */
#define vnic_BLOCK_03           0x92C   /* vnic */
#define vnic_BLOCK_04           0x92D   /* vnic */
#define vnic_BLOCK_05           0x92E   /* vnic */
#define vnic_BLOCK_06           0x92F   /* vnic */
#define vnic_BLOCK_07           0x930   /* vnic */

/*
 * Base kerrno block for .c files of OFED-ported code
 */
#define ofed_BLOCK_00			0x940

/* src/bos/kernel/lib/libofed_wrappers/linked_lists.c */
#define ofed_COMMON_LINKED_LISTS_C	ofed_BLOCK_00

/* src/bos/kernel/lib/libofed_wrappers/syncronization_primitives.c */
#define ofed_COMMON_SYNCRONIZATION_PRIMITIVES_C \
 					(ofed_BLOCK_00 + 0x01)

/* src/bos/kernel/lib/libofed_wrappers/work_queues.c */
#define ofed_COMMON_WORK_QUEUES_C	(ofed_BLOCK_00 + 0x02)

/* src/ofed/kernext/rds/af_rds.c */
#define ofed_RDS_AF_RDS_C		(ofed_BLOCK_00 + 0x03)

/* src/ofed/kernext/rds/aix_rds_config.c */
#define ofed_RDS_AIX_RDS_CONFIG_C	(ofed_BLOCK_00 + 0x04)

/* src/ofed/kernext/rds/aix_ofed_socket.c */
#define ofed_RDS_AIX_OFED_SOCKET_C	(ofed_BLOCK_00 + 0x05)

/* src/ofed/kernext/rds/bind.c */
#define ofed_RDS_BIND_C			(ofed_BLOCK_00 + 0x06)

/* src/ofed/kernext/rds/cong.c */
#define ofed_RDS_CONG_C			(ofed_BLOCK_00 + 0x07)

/* src/ofed/kernext/rds/connection.c */
#define ofed_RDS_CONNECTION_C 		(ofed_BLOCK_00 + 0x08)

/* src/ofed/kernext/rds/info.c */
#define ofed_RDS_INFO_C			(ofed_BLOCK_00 + 0x09)

/* src/ofed/kernext/rds/loop.c */
#define ofed_RDS_LOOP_C 		(ofed_BLOCK_00 + 0x0a)

/* src/ofed/kernext/rds/message.c */
#define ofed_RDS_MESSAGE_C		(ofed_BLOCK_00 + 0x0b)

/* src/ofed/kernext/rds/page.c */
#define ofed_RDS_PAGE_C 		(ofed_BLOCK_00 + 0x0c)

/* src/ofed/kernext/rds/recv.c */
#define ofed_RDS_RECV_C 		(ofed_BLOCK_00 + 0x0d)

/* src/ofed/kernext/rds/send.c */
#define ofed_RDS_SEND_C 		(ofed_BLOCK_00 + 0x0e)

/* src/ofed/kernext/rds/stats.c */
#define ofed_RDS_STATS_C 		(ofed_BLOCK_00 + 0x0f)

/* src/ofed/kernext/rds/aix_rds_sysctl.c */
#define ofed_RDS_AIX_RDS_SYSCTL_C	(ofed_BLOCK_00 + 0x10)

/* src/ofed/kernext/rds/threads.c */
#define ofed_RDS_THREADS_C 		(ofed_BLOCK_00 + 0x11)

/* src/ofed/kernext/rds/transport.c */
#define ofed_RDS_TRANSPORT_C 		(ofed_BLOCK_00 + 0x12)

/* src/bos/kernel/lib/libofed_wrappers/ofed_ras.c */
#define ofed_COMMON_OFED_RAS_C		(ofed_BLOCK_00 + 0x13)

/* src/ofed/kernext/rds/aix_rds_proto.c */
#define ofed_RDS_AIX_RDS_PROTO_C	(ofed_BLOCK_00 + 0x14)

/* src/bos/kernel/lib/libofed_wrappers/memory_management.c */
#define ofed_COMMON_MEMORY_MANAGEMENT_C	(ofed_BLOCK_00 + 0x15)

/* src/bos/kernel/lib/libofed_wrappers/multiprocessor.c */
#define ofed_COMMON_MULTIPROCESSOR_C	(ofed_BLOCK_00 + 0x16)

/* src/ofed/kernext/rds/ib.c */
#define ofed_RDS_IB_C			(ofed_BLOCK_00 + 0x17)

/* src/ofed/kernext/rds/ib_cm.c */
#define ofed_RDS_IB_CM_C		(ofed_BLOCK_00 + 0x18)

/* src/ofed/kernext/rds/ib_ring.c */
#define ofed_RDS_IB_RING_C		(ofed_BLOCK_00 + 0x19)

/* src/ofed/kernext/rds/ib_stats.c */
#define ofed_RDS_IB_STATS_C		(ofed_BLOCK_00 + 0x1a)

/* src/ofed/kernext/rds/ib_recv.c */
#define ofed_RDS_IB_RECV_C		(ofed_BLOCK_00 + 0x1b)

/* src/ofed/kernext/rds/ib_send.c */
#define ofed_RDS_IB_SEND_C		(ofed_BLOCK_00 + 0x1c)

/* src/ofed/kernext/rds/aix_ofed_ib_dma.c */
#define ofed_RDS_AIX_OFED_IB_DMA_C	(ofed_BLOCK_00 + 0x1d)

/* src/ofed/kernext/rds/aix_ib_wrapper.c */
#define ofed_RDS_AIX_IB_WRAPPER_C	(ofed_BLOCK_00 + 0x1e)

/* src/ofed/kernext/rds/aix_ib_arp_provider.c */
#define ofed_RDS_AIX_IB_ARP_PROVIDER_C	(ofed_BLOCK_00 + 0x1f)

/* src/bos/kernel/lib/libofed_wrappers/ofed_misc_wrappers.c */
#define ofed_COMMON_OFED_MISC_WRAPPERS_C \
					(ofed_BLOCK_00 + 0x20)

/* src/bos/kernel/lib/libofed_wrappers/hash_tables.c */
#define ofed_COMMON_HASH_TABLES_C	(ofed_BLOCK_00 + 0x21)

/* src/bos/kernel/lib/libofed_wrappers/red_black_trees.c */
#define ofed_COMMON_RED_BLACK_TREES_C	(ofed_BLOCK_00 + 0x22)

/* src/ofed/kernext/rds/aix_ib_cm.c */
#define ofed_RDS_AIX_IB_CM_C		(ofed_BLOCK_00 + 0x23)

/* src/ofed/kernext/rds/rdma.c */
#define ofed_RDS_RDMA_C			(ofed_BLOCK_00 + 0x24)

/* src/ofed/kernext/rds/ib_rdma.c */
#define ofed_RDS_IB_RDMA_C 		(ofed_BLOCK_00 + 0x25)

/* src/ofed/kernext/rds/aix_ib_device.c */
#define ofed_RDS_AIX_IB_DEVICE_C 	(ofed_BLOCK_00 + 0x26)

/* src/ofed/kernext/rds/aix_ib_dma_page_pool.c */
#define ofed_RDS_AIX_IB_DMA_PAGE_POOL_C	(ofed_BLOCK_00 + 0x27)

/* src/ofed/kernext/rds/aix_rdma_wrappers.c */
#define ofed_RDS_AIX_RDMA_WRAPPERS_C	(ofed_BLOCK_00 + 0x28)

/* src/ofed/kernext/rds/aix_rds_wire_tracing.c */
#define ofed_RDS_AIX_RDS_WIRE_TRACING_C	(ofed_BLOCK_00 + 0x29)

/* src/ofed/kernext/ofed_core/aix_ofed_core.c */
#define ofed_CORE_AIX_OFED_CORE_C       (ofed_BLOCK_00 + 0x2a)

/* src/ofed/kernext/ofed_core/iwcm.c */
#define ofed_CORE_IWCM_C                (ofed_BLOCK_00 + 0x2b)

/* src/ofed/kernext/ofed_core/verbs.c */
#define ofed_CORE_VERBS_C               (ofed_BLOCK_00 + 0x2c)

/* src/ofed/kernext/ofed_core/cma.c */
#define ofed_CORE_CMA_C                 (ofed_BLOCK_00 + 0x2d)

/* src/ofed/kernext/ofed_core/device.c */
#define ofed_CORE_DEVICE_C              (ofed_BLOCK_00 + 0x2e)

/* src/ofed/kernext/ofed_core/cache.c */
#define ofed_CORE_CACHE_C               (ofed_BLOCK_00 + 0x2f)

/* src/ofed/kernext/ofed_core/packer.c */
#define ofed_CORE_PACKER_C              (ofed_BLOCK_00 + 0x30)

/* src/ofed/kernext/ofed_core/ucma.c */
#define ofed_CORE_UCMA_C                (ofed_BLOCK_00 + 0x31)

/* src/ofed/kernext/ofed_core/ud_header.c */
#define ofed_CORE_UD_HEADER_C           (ofed_BLOCK_00 + 0x32)

/* src/ofed/kernext/ofed_core/uverbs_main.c */
#define ofed_CORE_UVERBS_MAIN_C         (ofed_BLOCK_00 + 0x33)

/* src/ofed/kernext/ofed_core/addr.c */
#define ofed_CORE_ADDR_C                (ofed_BLOCK_00 + 0x34)

/* src/ofed/kernext/ofed_core/aix_addr.c */
#define ofed_CORE_AIX_ADDR_C            (ofed_BLOCK_00 + 0x35)

/* src/bos/kernel/lib/libofed_wrappers/idr.c */
#define ofed_COMMON_IDR_C               (ofed_BLOCK_00 + 0x36)

/* src/ofed/kernext/ofed_core/uverbs_cmd.c */
#define ofed_CORE_UVERBS_CMD_C          (ofed_BLOCK_00 + 0x37)

/* src/ofed/kernext/ofed_core/cm.c : 0x978 */
#define ofed_CORE_CM_C                  (ofed_BLOCK_00 + 0x38)

/* src/ofed/kernext/ofed_core/sa_query.c : 0x979 */
#define ofed_CORE_SA_QUERY_C            (ofed_BLOCK_00 + 0x39)

/* src/ofed/kernext/ofed_core/mad.c : 0x97A */
#define ofed_CORE_MAD_C                 (ofed_BLOCK_00 + 0x3A)

/* src/ofed/kernext/ofed_core/agent.c : 0x97B */
#define ofed_CORE_AGENT_C               (ofed_BLOCK_00 + 0x3B)

/* src/bos/kernel/lib/libofed_wrappers/ofed_timers.c : 0x97C */
#define ofed_COMMON_OFED_TIMERS_C       (ofed_BLOCK_00 + 0x3C)

/* src/ofed/kernext/ofed_core/multicast.c : 0x97D */
#define ofed_CORE_MULTICAST_C           (ofed_BLOCK_00 + 0x3D)

/* src/ofed/kernext/ofed_core/local_sa.c : 0x97E */
#define ofed_CORE_LOCAL_SA_C            (ofed_BLOCK_00 + 0x3E)

/* src/bos/kernel/lib/libofed_wrappers/percpu_counter.c : 0x97F */
#define ofed_COMMON_PERCPU_COUNTER_C    ofed_BLOCK_00_END

/* End of first kerrno block for OFED, see next block below: ofed_BLOCK_01 */
#define ofed_BLOCK_00_END               0x97F

#define sysxsfw_BLOCK_00                0x980 /* sysxsfw 0x980-0x987   */
#define sysxsfw_BLOCK_01                0x981 /* sysxsfw 0x980-0x987   */
#define sysxsfw_BLOCK_02                0x982 /* sysxsfw 0x980-0x987   */
#define sysxsfw_BLOCK_03                0x983 /* sysxsfw 0x980-0x987   */
#define sysxsfw_BLOCK_04                0x984 /* sysxsfw 0x980-0x987   */
#define sysxsfw_BLOCK_05                0x985 /* sysxsfw 0x980-0x987   */
#define sysxsfw_BLOCK_06                0x986 /* sysxsfw 0x980-0x987   */
#define sysxsfw_BLOCK_07                0x987 /* sysxsfw 0x980-0x987   */

#define pcilncent_BLOCK_00      0x988   /* pcilncent */
#define pcilncent_BLOCK_01      0x989   /* pcilncent */
#define pcilncent_BLOCK_02      0x98A   /* pcilncent */

/* WPAR specific */
#define syswpar_BLOCK_00                0x98B /* kcorral.h */

/* ACF acf_eras.h */
#define acf_BLOCK_00            0x98C   /* AIX Cryptographic Framework (pkcs11 DD) */
#define acf_BLOCK_01            0x98D   /* AIX Cryptographic Framework (pkcs11 DD) */

/*
 * Second kerrno block for .c files of OFED-ported code
 */
#define ofed_BLOCK_01                   0x990

/* src/ofed/kernext/ofed_core/aix_dma_verbs.c : 0x990 */
#define ofed_CORE_AIX_DMA_VERBS_C       (ofed_BLOCK_01)

/* src/ofed/kernext/ofed_core/aix_dma_verbs.c : 0x991 */
#define ofed_CORE_UMEM_C                (ofed_BLOCK_01 + 0x01)

/* src/ofed/kernext/ofed_core/fmr_pool.c : 0x992 */
#define ofed_CORE_FMR_POOL_C            (ofed_BLOCK_01 + 0x02)

/* src/bos/kernel/lib/libofed_wrappers/ofed_tasklets.c : 0x993 */
#define ofed_COMMON_OFED_TASKLETS_C     (ofed_BLOCK_01 + 0x03)

/* src/bos/kernel/lib/libofed_wrappers/ofed_skbuff.c : 0x994 */
#define ofed_COMMON_OFED_SKBUFF_C       (ofed_BLOCK_01 + 0x04)

/* src/rnic/kernext/sdp/sdp_main.c : 0x995 */
#define ofed_SDP_SDP_MAIN_C             (ofed_BLOCK_01 + 0x05)

/* src/rnic/kernext/sdp/sdp_bcopy.c : 0x996 */
#define ofed_SDP_SDP_BCOPY_C            (ofed_BLOCK_01 + 0x06)

/* src/rnic/kernext/sdp/sdp_zcopy.c : 0x997 */
#define ofed_SDP_SDP_ZCOPY_C            (ofed_BLOCK_01 + 0x07)

/* src/rnic/kernext/sdp/sdp_rx.c : 0x998 */
#define ofed_SDP_SDP_RX_C               (ofed_BLOCK_01 + 0x08)

/* src/rnic/kernext/sdp/sdp_tx.c : 0x999 */
#define ofed_SDP_SDP_TX_C               (ofed_BLOCK_01 + 0x09)

/* src/rnic/kernext/sdp/sdp_cma.c : 0x99A */
#define ofed_SDP_SDP_CMA_C              (ofed_BLOCK_01 + 0x0A)

/* src/rnic/kernext/sdp/sdp_proc.c : 0x99B */
#define ofed_SDP_SDP_PROC_C             (ofed_BLOCK_01 + 0x0B)

/* src/rnic/kernext/sdp/aix_sdp_config.c : 0x99C */
#define ofed_SDP_AIX_SDP_CONFIG_C       (ofed_BLOCK_01 + 0x0C)

/* src/rnic/kernext/sdp/aix_sdp_proto.c : 0x99D */
#define ofed_SDP_AIX_SDP_PROTO_C        (ofed_BLOCK_01 + 0x0D)

/* src/rnic/kernext/sdp/aix_ofed_proto.c : 0x99E */
#define ofed_SDP_AIX_OFED_SOCKET_C      (ofed_BLOCK_01 + 0x0E)

/* src/ofed/kernext/sdp/aix_sdp_proc.c : 0x99F */
#define ofed_SDP_AIX_SDP_PROC_C         (ofed_BLOCK_01 + 0x0F)

/* src/rnic/kernext/sdp/aix_ofed_timer.c : 0x9A0 */
#define ofed_SDP_AIX_OFED_TIMER_C       (ofed_BLOCK_01 + 0x10)

/* src/ofed/kernext/rds/aix_ofed_ib_device.c : 0x9A1 */
#define ofed_RDS_AIX_OFED_IB_DEVICE_C       (ofed_BLOCK_01 + 0x11)

/* src/ofed/kernext/rds/aix_ofed_dma_page_pool.c : 0x9A2 */
#define ofed_RDS_AIX_OFED_DMA_PAGE_POOL_C       (ofed_BLOCK_01 + 0x12)

#define ofed_BLOCK_01_END               0x9AE

/* reserved for mlxent driver and rdma extensions */
#define pcimlxent_BLOCK_00      0x9B0
#define pcimlxent_BLOCK_01      0x9B1
#define pcimlxent_BLOCK_02      0x9B2
#define pcimlxent_BLOCK_03      0x9B3
#define pcimlxent_BLOCK_04      0x9B4
#define pcimlxent_BLOCK_05      0x9B5
#define pcimlxent_BLOCK_06      0x9B6
#define pcimlxent_BLOCK_07      0x9B7
#define pcimlxent_BLOCK_08      0x9B8

/* Reserved for RFDD(refactor device driver) for NIC */
#define entcore_v1_BLOCK_00     0x9B9
#define entcore_v1_BLOCK_01     0x9BA
#define entcore_v1_BLOCK_02     0x9BB
#define entcore_v1_BLOCK_03     0x9BC
#define entcore_v1_BLOCK_04     0x9BD
#define entcore_v1_BLOCK_05     0x9BE
#define entcore_v1_BLOCK_06     0x9BF
#define entcore_v1_BLOCK_07     0x9C0

/* Reserved for ADDE(AIX driver development Environment) for NIC */
#define entcore_v2_BLOCK_00     0x9C1
#define entcore_v2_BLOCK_01     0x9C2
#define entcore_v2_BLOCK_02     0x9C3
#define entcore_v2_BLOCK_03     0x9C4

/* Reserved for MUSENTDD(FC5899) */
#define musent_BLOCK_00         0x9c5

/* Reserved for vnicserver */
#define vnicserver_BLOCK_00     0x9C6
#define vnicserver_BLOCK_01     0x9C7

/* reserved for mlxcent driver and rdma extensions */
#define pcimlxcent_BLOCK_00     0x9C8    /* pcimlxcent */
#define pcimlxcent_BLOCK_01     0x9C9    /* pcimlxcent */

/* Reserved for virtio drivers */
#define vrtcore_BLOCK_00        0x9D0
#define vrtscsi_BLOCK_00        0x9D4
#define vrtent_BLOCK_00         0x9D8

/* Reserved for Cavium fibre channel drivers */
#define sysxcvfc_BLOCK_00       0x9E0
#define sysxcvfcp_BLOCK_00      0x9E1

/* Reserved for coherent accelerators (CAPI) */
#define sysios_C_caccelinit  0xA00
#define sysios_C_caccel      0xA01
#define sysios_C_caccelutil  0xA02
#define sysios_C_caccelstat  0xA03

/* Reserved for CAPI memcopy driver */
#define sysmemcopy_C_memcopy 0xA10

/* Reserved for NX accelerators */
#define sysios_N_nxutil		0x0A20
#define sysios_N_nxinit		0x0A21
#define sysios_N_nxserv		0x0A22

/* Reserved for IOS */
#define sysios_C_selnotify   0xA80

/* Reserved for PMEMFS */
#define cormob_C_pmemfstranstbl	0xA90

/* Reserved for PKS */
#define sysspks_BLOCK_00	0xAA0

/* Reserved for the crypt4769 crypto device dirver IBM 4767 */
#define crypt4769_BLOCK_00	0xAA1

/*
 * The macro KERROR(errno, block, sub-block) generates the appropriate kernel
 * dependent value.  Note that kernel error code values are different between
 * the 32-bit and 64-bit kernel.  Defines for specific kernel error codes
 * should be composed of an errno value followed by a unique descriptive error
 * name.
 *      For example, raschk_vm_att() service returning errno ENOSPC on error
 *      will have a
 *      #define ENOMEM_RAS_VM_ATT_MAP KERROR(ENOMEM, sysras_BLOCK_00, 25)
 * This is often the interface that produced the error or a more specific
 * error description.  A comment should be included that contains the
 * 64-bit hex encoding of the error value.
 *
 * A macro KERROR2ERRNO(kerror) is available that extracts the errno value
 * from a kernel error code.  This can be used for setting ut_errno or generic
 * error processing.
 */


/* Error Code Data Type: */

/*
 * All kernel functions should return unique and meaningful return codes.
 * Error codes must conform to the global kernel error code guideline.
 */
#ifdef __64BIT__
typedef long    kerrno_t;
#else
typedef unsigned long long kerrno_t;
#endif

#endif /* _H_KERRNO */