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