xref: /linux/arch/powerpc/platforms/pseries/papr-hvpipe.h (revision 417552999d0b6681ac30e117ae890828ca7e46b3)
1814ef095SHaren Myneni /* SPDX-License-Identifier: GPL-2.0-only */
2814ef095SHaren Myneni #ifndef _PAPR_HVPIPE_H
3814ef095SHaren Myneni #define _PAPR_HVPIPE_H
4814ef095SHaren Myneni 
5814ef095SHaren Myneni #define	HVPIPE_HMC_ID_MASK	0x02000000 /*02-HMC,00-reserved and HMC ID */
656dbc667SHaren Myneni #define	HVPIPE_MAX_WRITE_BUFFER_SIZE	4048
756dbc667SHaren Myneni /*
856dbc667SHaren Myneni  * hvpipe specific RTAS return values
956dbc667SHaren Myneni  */
1056dbc667SHaren Myneni #define	RTAS_HVPIPE_CLOSED		-4
1156dbc667SHaren Myneni 
1256dbc667SHaren Myneni #define	HVPIPE_HDR_LEN	sizeof(struct papr_hvpipe_hdr)
13814ef095SHaren Myneni 
14*6d84f851SHaren Myneni enum hvpipe_migrate_action {
15*6d84f851SHaren Myneni 	HVPIPE_SUSPEND,
16*6d84f851SHaren Myneni 	HVPIPE_RESUME,
17*6d84f851SHaren Myneni };
18*6d84f851SHaren Myneni 
19814ef095SHaren Myneni struct hvpipe_source_info {
20814ef095SHaren Myneni 	struct list_head list;	/* list of sources */
21814ef095SHaren Myneni 	u32 srcID;
22cebdb522SHaren Myneni 	u32 hvpipe_status;
23814ef095SHaren Myneni 	wait_queue_head_t recv_wqh;	 /* wake up poll() waitq */
24814ef095SHaren Myneni 	struct task_struct *tsk;
25814ef095SHaren Myneni };
26814ef095SHaren Myneni 
27b48b6cc8SHaren Myneni /*
28b48b6cc8SHaren Myneni  * Source ID Format 0xCCRRQQQQ
29b48b6cc8SHaren Myneni  * CC = indicating value is source type (ex: 0x02 for HMC)
30b48b6cc8SHaren Myneni  * RR = 0x00 (reserved)
31b48b6cc8SHaren Myneni  * QQQQ = 0x0000 – 0xFFFF indicating the source index indetifier
32b48b6cc8SHaren Myneni  */
33b48b6cc8SHaren Myneni struct hvpipe_event_buf {
34b48b6cc8SHaren Myneni 	__be32	srcID;		/* Source ID */
35b48b6cc8SHaren Myneni 	u8	event_type;	/* 0x01 for hvpipe message available */
36b48b6cc8SHaren Myneni 				/* from specified src ID */
37b48b6cc8SHaren Myneni 				/* 0x02 for loss of pipe connection */
38b48b6cc8SHaren Myneni 				/* with specified src ID */
39b48b6cc8SHaren Myneni };
40b48b6cc8SHaren Myneni 
41*6d84f851SHaren Myneni void hvpipe_migration_handler(int action);
42814ef095SHaren Myneni #endif /* _PAPR_HVPIPE_H */
43