/* IBM_PROLOG_BEGIN_TAG                                                   */
/* This is an automatically generated prolog.                             */
/*                                                                        */
/* bos72X src/bos/kernel/sys/fs_subhook.h 1.14.9.1                        */
/*                                                                        */
/* Licensed Materials - Property of IBM                                   */
/*                                                                        */
/* Restricted Materials of IBM                                            */
/*                                                                        */
/* COPYRIGHT International Business Machines Corp. 2005,2021              */
/* 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                                                     */
/* @(#)19       1.14.9.1  src/bos/kernel/sys/fs_subhook.h, syslfs, bos72X, x2022_03A3 11/18/21 06:07:20 */

/*
 * COMPONENT_NAME: syslfs, sysj2, syspfs, sysxaio, syskdm
 *
 * This file should not be included directly by anything but
 * trchkid.h. This file contains subhooks for filesystems related
 * tracehooks. The hookwords themselves are defined in trchkid.h.
 */ 

#ifndef _H_FS_SUBHOOK
#define _H_FS_SUBHOOK

/* HKWD_VNOP_*, HKWD_VNODE_REF: */
#define hkwd_VNOP_EXIT             0xff         /* vnop exit */
#define hkwd_VNOP_EXIT_2           0xfe         /* secondary exit */
#define hkwd_VNOP_EXIT_32_1        0xef		/* 32BK double trace, 1/2 */
#define hkwd_VNOP_EXIT_32_2        0xee         /* 32BK double trace, 2/2 */

/* HKWD_VFS_*: */
#define hkwd_VFS_EXIT              0xff         /* vfsop exit */
#define hkwd_VFS_RELE              0x01         /* vfs is freed */

/* HKWD_VFS_VGET: */
#define hkwd_VNC_ENTER				13
#define hkwd_VNC_REMOVE				14
#define hkwd_VNC_PURGE				15
#define hkwd_VNC_LOOKUP				16 /* 16-23 */
#define hkwd_VNC_LOOKUP_HIT			16
#define hkwd_VNC_LOOKUP_MISS			17

/* HKWD_NLC: */
#define hkwd_NLC_PURGE			1
#define hkwd_NLC_RESUME			2
#define hkwd_NLC_ENTER			3
#define hkwd_NLC_DELETE			4
#define hkwd_NLC_LOOKUP_UNDEF		16
#define hkwd_NLC_LOOKUP_MISS		17
#define hkwd_NLC_LOOKUP_NEGATIVE_HIT	18
#define hkwd_NLC_LOOKUP_FALSE_HIT	19
#define hkwd_NLC_LOOKUP_GOOD_HIT	20

/* HKWD_J2_IO: */
#define hkwd_IO_READI			5
#define hkwd_IO_WRITEI			6
#define hkwd_IO_GATHER			7
#define hkwd_IO_PAGEOUT			8
#define hkwd_IO_PAGEIN			9
#define hkwd_IO_PAGEPROTECT		10
#define hkwd_IO_DEVSTRAT		11
#define hkwd_IO_DEVSERV			12
#define hkwd_IO_IODONE			13
#define hkwd_IO_EXCEPTION		14
#define hkwd_IO_DIOMOVE			15
#define hkwd_IO_DIODEMOTED		16
#define hkwd_IO_DIODEVSTRAT		17
#define hkwd_IO_DIODONE			18
#define hkwd_IO_DIOERR			19
#define hkwd_IO_PAGERBIND		20	
#define hkwd_IO_READAHEAD		21	
#define hkwd_IO_OCLEAR			22	
#define hkwd_IO_OSET			23
#define hkwd_IO_CCLEAR			24	
#define hkwd_IO_CSET			25
#define hkwd_IO_MCLEAR			26
#define hkwd_IO_MSET			27
#define hkwd_IO_ENCRYPT			28
#define hkwd_IO_DECRYPT			29
#define hkwd_IO_EFSIODONE		30
#define hkwd_IO_PGTHREAD		31
#define hkwd_IO_ISYNC			32

/* HKWD_J2_BUFMGR: */
#define hkwd_BM_CHECKOUT		1
#define hkwd_BM_CHECKIN			2
#define hkwd_BM_DEVSTRAT0		3
#define hkwd_BM_IODONEREAD		4
#define hkwd_BM_BUFWAIT			5
#define hkwd_BM_DEVSTRAT1		6
#define hkwd_BM_DEVSTRAT2		7
#define hkwd_BM_IODONEWRITE		8

/* HKWD_J2_ICACHE: */
#define hkwd_IGET			1
#define hkwd_IPUT			2
#define hkwd_FILE_TOTAL     		3
#define hkwd_ICACHEINODE_HEAD		4
#define hkwd_ICACHEINODE_TAIL		5
#define hkwd_ITRY_REMOVE		6
#define hkwd_ITRY_INS1			7
#define hkwd_ITRY_INS2			8
#define hkwd_IUNMNT_INS			9
#define hkwd_IUNMNT_REMOVE		10
#define hkwd_IGETREF_REM		11
#define hkwd_IACT_REMOVE		12

/* HKWD_J2_SNAPSHOT: */
#define hkwd_SM_COW_FSEXT		1
#define hkwd_SM_COW_SNAPEXT		2
#define hkwd_SM_COW_BFSEXT		3
#define hkwd_SM_READ_FSEXT		4
#define hkwd_SM_READ_SNAPEXT		5
#define	hkwd_SM_IOD_FSEXT		6
#define	hkwd_SM_RON_FSEXT		7
#define	hkwd_SM_FIFOIN			8
#define	hkwd_SM_FIFOOUT			9
#define	hkwd_SM_FIFOWAKE		10
#define	hkwd_SM_FIFOWAIT		11
#define	hkwd_SM_IOD_FREE		12
/* Following trachooks are for external snapshots only */
#define hkwd_SM_COW_QUEUE               13
#define hkwd_SM_COW_IOWAIT              14
#define hkwd_SM_COW_PIIOD               15
#define hkwd_SM_COW_WAKEUP              16
#define hkwd_SM_COWPOIOD                17
#define hkwd_SM_COWEOS                  18
#define hkwd_SM_COWPOR                  19
#define hkwd_SM_PIIOD                  	20 
#define hkwd_SM_POIOD                   21
#define hkwd_SM_COD                     22
#define hkwd_SM_COW_AWAKE               23

/* HKWD_J2_DMAP: */
#define hkwd_DB_ALLOC			1
#define hkwd_DB_FREE			2
#define	hkwd_DB_PALLOC			3
#define	hkwd_DB_PFREE			4
#define hkwd_DB_ALLOCBITS		5
#define hkwd_DB_FREEBITS		6
#define hkwd_DB_ALLOCDMAPBU		7
#define hkwd_DB_RESIZEFS		8
#define hkwd_DB_RESIZEFS1		9
#define hkwd_DB_ADJCTL			10
#define hkwd_DB_BACKSPLIT		11
#define hkwd_DB_SPLIT			12
#define hkwd_DB_SPLIT1			13
#define hkwd_DB_JOIN			14
#define hkwd_DB_JOIN1			15
#define hkwd_DB_ALLOC2			16


/* HKWD_J2_GLOBAL: */
#define hkwd_GL_MOUNT			1
#define hkwd_GL_UMOUNT			2
#define hkwd_GL_LOGOPEN			3
#define hkwd_GL_LOGSHUTDOWN		4
#define hkwd_GL_RECONFIG		5
#define hkwd_GL_QENABLE			6
#define hkwd_GL_QDISABLE		7
#define hkwd_GL_FREEZE			8
#define hkwd_GL_THAW			9
#define hkwd_GL_REFREEZE		10	
#define hkwd_GL_SNAPCREATE		11
#define hkwd_GL_SNAPDELETE		12
#define hkwd_GL_SHRINK			13
#define hkwd_GL_EXTEND			14
#define hkwd_GL_DEFRAGFS		15
#define hkwd_GL_GENERIC			16
#define hkwd_GL_REMOUNT			17
#define hkwd_GL_SUPERBLOCK		18
#define hkwd_GL_DEGRADE			19
#define hkwd_GL_RECOVER			20
#define hkwd_GL_RECLAIM			21

/* HKWD_J2_LOGMGR: */
#define hkwd_LM_WRAP_START		1
#define hkwd_LM_WRAP_STOP		2
#define hkwd_LM_OPEN			3
#define hkwd_LM_CLOSE			4
#define hkwd_LM_SYNC			5
#define hkwd_LM_EXCEPTION		6
#define hkwd_LM_DEVSTRAT		7
#define hkwd_LM_IODONE			8

/* HKWD_J2_TXNMGR: */
#define hkwd_TM_BEGIN			1
#define hkwd_TM_END			2
#define hkwd_TM_LOCK			3
#define hkwd_TM_COMMIT			4
#define hkwd_TM_ABORT			5
#define hkwd_TM_NOHOMEOK		6
#define hkwd_TM_COMMIT_ERR1		7
#define hkwd_TM_COMMIT_ERR2		8
#define hkwd_TM_COMMIT_ERR3		9
#define hkwd_TM_COMMIT_ERR4		10

/* HKWD_J2_ZOMBIE */
#define hkwd_ZOMBIE_REMOVE		1
#define hkwd_ZOMBIE_RENAME		2
#define hkwd_ZOMBIE_LINK		3
#define hkwd_ZOMBIE_WAKEUP		4
#define hkwd_ZOMBIE_DELETE		5
#define hkwd_ZOMBIE_STATS		6

/* HKWD_J2_XTREE: */
#define	hkwd_XT_LKUP_ENTRY		1
#define hkwd_XT_LKUP_EXIT		2
#define	hkwd_XT_SRCH_ENTRY		3 
#define	hkwd_XT_SRCH_EXIT1		4
#define	hkwd_XT_SRCH1			5
#define	hkwd_XT_SRCH_EXIT		6
#define	hkwd_XT_INSRT_ENTRY		7
#define hkwd_XT_INSRT_EXIT		8
#define	hkwd_XT_SPLTUP_ENTRY		9
#define	hkwd_XT_SPLTUP_EXIT1		10
#define	hkwd_XT_SPLTUP_EXIT		11
#define	hkwd_XT_SPLTPG_ENTRY		12
#define	hkwd_XT_SPLTPG_EXIT1		13
#define	hkwd_XT_SPLTPG_EXIT 		14
#define	hkwd_XT_SPLTRT_ENTRY		15
#define	hkwd_XT_SPLTRT_EXIT		16
#define	hkwd_XT_EXTEND_ENTRY		17
#define	hkwd_XT_EXTEND_EXIT1		18
#define	hkwd_XT_EXTEND_EXIT		19
#define	hkwd_XT_TAILGT_ENTRY		20
#define	hkwd_XT_TAILGT_EXIT		21
#define hkwd_XT_UPDATE_ENTRY		22
#define	hkwd_XT_UPDATE_EXIT1		23
#define	hkwd_XT_UPDATE_EXIT2		24
#define	hkwd_XT_UPDATE_EXIT3		25
#define	hkwd_XT_UPDATE_EXIT4		26
#define	hkwd_XT_UPDATE_EXIT5		27
#define	hkwd_XT_UPDATE_EXIT		28
#define	hkwd_XT_APPND_ENTRY		29
#define	hkwd_XT_APPND_EXIT		30
#define	hkwd_XT_SPLTEXT_ENTRY		31
#define	hkwd_XT_SPLTEXT_1		32
#define	hkwd_XT_SPLTEXT_2		33
#define	hkwd_XT_SPLTEXT_3		34
#define	hkwd_XT_SPLTEXT_4		35
#define	hkwd_XT_SPLTEXT_5		36
#define hkwd_XT_SPLTEXT_EXIT		37
#define	hkwd_XT_ALLOEXT_ENTRY		38
#define	hkwd_XT_ALLOEXT_EXIT1		39
#define	hkwd_XT_ALLOEXT_EXIT2		40
#define	hkwd_XT_ALLOEXT_1		41
#define	hkwd_XT_ALLOEXT_2		42
#define	hkwd_XT_ALLOEXT_EXIT		43
#define	hkwd_XT_RELOCF_ENTRY		44
#define	hkwd_XT_RELOCF_EXIT1		45
#define	hkwd_XT_RELOCF_EXIT2		46
#define	hkwd_XT_RELOCF_1		47
#define	hkwd_XT_RELOCF_EXIT		48
#define	hkwd_XT_RELOCE_ENTRY		49
#define	hkwd_XT_RELOCE_EXIT		50
#define	hkwd_XT_RELOC_ENTRY		51
#define	hkwd_XT_RELOC_EXIT		52
#define	hkwd_XT_TRUNC_ENTRY		53
#define	hkwd_XT_TRUNC_EXIT		54
#define	hkwd_XT_FREEM_ENTRY		55
#define	hkwd_XT_FREEM_EXIT		56
#define	hkwd_XT_KILL_ENTRY		57
#define	hkwd_XT_KILL_EXIT		58
#define	hkwd_XT_CLEAR_ENTRY		59
#define	hkwd_XT_CLEAR_EXIT		60
#define	hkwd_XT_UPDRANG_ENTRY		61
#define	hkwd_XT_UPDRANG_EXIT		62
#define	hkwd_XT_RESERV_ENTRY		63
#define	hkwd_XT_RESERV_EXIT		64
#define hkwd_XT_SPLIT_TRUNC_ENTRY	65
#define hkwd_XT_SPLIT_TRUNC_EXIT	66
#define hkwd_XT_SPLIT_TRUNC_GETPAGE	67
#define hkwd_XT_SPLIT_TRUNC_BUFCOUNTLOW 68
#define hkwd_XT_SPLIT_TRUNC_MODIFIED	69
#define hkwd_XT_SPLIT_TRUNC_SMALLTREE	70
#define hkwd_XT_SPLIT_TRUNC_DBALLOC	71
#define hkwd_XT_SPLIT_TRUNC_DBFREE	72

/* HKWD_KERN_PFS: */
#define hkwd_PFS_RDWR                 1
#define hkwd_PFS_READI                2
#define hkwd_PFS_WRITEI               3

/* HKWD_DIO, HKWD_DIO_IO, HKWD_DIO_PSEG: */
#define hkwd_DIO_JMOVE	              1  /* HKWD_DIO */	
#define hkwd_DIO_PSEG                 2  /* HKWD_DIO_PSEG */
#define hkwd_DIO_PSEG_WRITE	      3  /* HKWD_DIO_PSEG */
#define hkwd_DIO_PSEG_IOWAIT	      4  /* HKWD_DIO_PSEG */
#define hkwd_DIO_XON		      5  /* HKWD_DIO */
#define hkwd_DIO_XOFF		      6  /* HKWD_DIO */
#define hkwd_DIO_STARTIO	      7  /* HKWD_DIO_IO */
#define hkwd_DIO_STARTIO_ADSPC	      8  /* HKWD_DIO_IO */
#define hkwd_DIO_STARTIO_ADSPC2	      9  /* HKWD_DIO_IO */
#define hkwd_DIO_IODONE		      10 /* HKWD_DIO_IO */
#define hkwd_DIO_IODONE_ERROR	      11 /* HKWD_DIO */
#define hkwd_DIO_STARTIO_MULTI        12 /* HKWD_DIO_IO */
#define hkwd_DIO_STARTIO_SIDS         13 /* HKWD_DIO_IO */

/* HKWD_KDM: */
#define hkwd_FSET_MOUNT		1
#define hkwd_FSET_UNMOUNT	2
#define hkwd_FSET_ACTIVE	3
#define hkwd_FSET_INACTIVE	4
#define hkwd_FSET_HANDLETOIP	5
#define hkwd_FSET_GETBULKATTR	6
#define hkwd_FSET_GETBULKALL	7
#define hkwd_FSET_DO_SOD	8
#define hkwd_FSET_DO_SEL	9
#define hkwd_FSET_GETCONFIG	10
#define hkwd_VN_IPTOHANDLE	11
#define hkwd_VN_KVPTOVP		12
#define hkwd_VN_VRELE		13
#define hkwd_VN_RWLOCK		14
#define hkwd_VN_RWUNLOCK	15
#define hkwd_VN_RWLOCK_TRY	16
#define hkwd_VN_PROBE_HOLE	17
#define hkwd_VN_GET_ALLOCINFO	18
#define hkwd_VN_GET_FILEATTR	19
#define hkwd_VN_GET_DIRATTR	20
#define hkwd_VN_GET_DMATTR	21
#define hkwd_VN_ATTRTOMR	22
#define hkwd_VN_DO_READINVIS	23
#define hkwd_VN_DO_WRITEINVIS	24
#define hkwd_VN_DO_PUNCH_HOLE	25
#define hkwd_VN_DO_SETFILEATTR	26
#define hkwd_VN_DO_SET_DMATTR	27
#define hkwd_VN_DO_SET_RESIDENT	28
#define hkwd_VN_DO_SYNC		29
#define hkwd_VN_DO_CREATBYHAN	30
#define hkwd_VN_DO_SET_REGION	31
#define hkwd_VN_SET_EVENTLIST	32


/* GRAVEYARD: The following subhook ids are still in code, but the
 * hookids have been deprecated or will be deleted in the future.
 */

/* HKWD_SYSC_LFS: */
#define hkwd_SYSC_FULLSTAT      1
#define hkwd_SYSC_LOCKFX        2
#define hkwd_SYSC_STAT          3
#define hkwd_SYSC_MKNOD         4
#define hkwd_SYSC_ACCESS        5
#define hkwd_SYSC_CHOWN         6
#define hkwd_SYSC_CHOWNX        7
#define hkwd_SYSC_CLOSEX        8
#define hkwd_SYSC_OPENX         9
#define hkwd_SYSC_FCHMOD        10
#define hkwd_SYSC_FCHOWN        11
#define hkwd_SYSC_FCHOWNX       12
#define hkwd_SYSC_FCLEAR        14
#define hkwd_SYSC_FSYNC         15
#define hkwd_SYSC_FTRUNCATE     16
#define hkwd_SYSC_TRUNCATE      17
#define hkwd_SYSC_IOCTLX        18
#define hkwd_SYSC_READX         19
#define hkwd_SYSC_WRITEX        20
#define hkwd_SYSC_LSEEK         21

/* HKWD_KERN_J2: */
#define hkwd_J2_RDWR            1
#define hkwd_J2_READI           2
#define hkwd_J2_WRITEI          3
#define hkwd_J2_CLOSE           4
#define hkwd_J2_IOPEN           5
#define hkwd_VFS_INO		6

/* HKWD_KERN_J2PAGER: */
#define hkwd_J2_PAGEIN          1
#define hkwd_J2_PAGEOUT         2
#define hkwd_J2_READAHEAD       3

/* HKWD_J2_IO: */
#define hkwd_IO_READ			1
#define hkwd_IO_WRITE			2
#define hkwd_DIO_DEMOTED		3
#define hkwd_DEVSTRAT			4

/* HKWD_DIO_J2: */
#define hkwd_DIO_CLEAR                1
#define hkwd_DIO_SET                  2
#define	hkwd_DIO_READ                 3
#define	hkwd_DIO_WRITE                4
#define hkwd_DIO_MOVE                 5
#define hkwd_J2DIO_IODONE             6
#define hkwd_DIODONE_ERR              7

/* HKWD_KCOPYFILE */
#define HKWD_KCOPYFILE_MAIN       0xff
#define HKWD_KCOPYFILE_TIME       0xfe
#define HKWD_KCOPYFILE_S1         0xfd
#define HKWD_KCOPYFILE_FA         0xfc
#define HKWD_KCOPYFILE_L1         0xfb
#define HKWD_KCOPYFILE_L2         0xfa
#define HKWD_KCOPYFILE_L3         0xf9

/* HKWD_LOCK_DUMP */
#define hkwd_FLOCK_GET_ENTER         0x1
#define hkwd_FLOCK_GET_EXIT1         0x2
#define hkwd_FLOCK_GET_EXIT2         0x3
#define hkwd_FLOCK_GET_EXIT3         0x4
#define hkwd_FLOCK_GET_EXIT4         0x5

#define hkwd_FLOCK_ALLOC_ENTER       0x6
#define hkwd_FLOCK_ALLOC_EXIT        0x7

#define hkwd_FLOCK_FREE_ENTER        0x8
#define hkwd_FLOCK_FREE_EXIT         0x9

#define hkwd_INSFLCK_ENTER           0xa
#define hkwd_INSFLCK_EXIT1           0xb
#define hkwd_INSFLCK_EXIT2           0xc

#define hkwd_FLCKADJ_ENTER           0xd
#define hkwd_FLCKADJ_EXIT1           0xe
#define hkwd_FLCKADJ_EXIT2           0xf
#define hkwd_FLCKADJ_EXIT3           0x10
#define hkwd_FLCKADJ_EXIT4           0x11
#define hkwd_FLCKADJ_EXIT5           0x12
#define hkwd_FLCKADJ_EXIT6           0x13

#define hkwd_TESTLOCK_ENTER          0x14
#define hkwd_TESTLOCK_EXIT           0x15

#define hkwd_BLOCKED_ENTER           0x16
#define hkwd_BLOCKED_EXIT1           0x17
#define hkwd_BLOCKED_EXIT2           0x18
#define hkwd_BLOCKED_EXIT3           0x19

#define hkwd_COMMON_RECLOCK_ENTER    0x1a
#define hkwd_COMMON_RECLOCK_EXIT1    0x1b
#define hkwd_COMMON_RECLOCK_EXIT2    0x1c
#define hkwd_COMMON_RECLOCK_EXIT3    0x1d
#define hkwd_COMMON_RECLOCK_EXIT4    0x1e
#define hkwd_COMMON_RECLOCK_EXIT5    0x1f
#define hkwd_COMMON_RECLOCK_EXIT6    0x20
#define hkwd_COMMON_RECLOCK_EXIT7    0x21
#define hkwd_COMMON_RECLOCK_EXIT8    0x22

#define hkwd_GETLOCKS_ENTER          0x23
#define hkwd_GETLOCKS_EXIT           0x24

#define hkwd_DEADFLCK_ENTER          0x25
#define hkwd_DEADFLCK_EXIT1          0x26
#define hkwd_DEADFLCK_EXIT2          0x27
#define hkwd_DEADFLCK_EXIT3          0x28
#define hkwd_DEADFLCK_EXIT4          0x29

#define hkwd_LOCK_WAKEUP_ENTER       0x2a
#define hkwd_LOCK_WAKEUP_EXIT        0x2b

#endif /* _H_FS_SUBHOOK */
