Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-or-later */
0002 /*
0003  * hvcserver.h
0004  * Copyright (C) 2004 Ryan S Arnold, IBM Corporation
0005  *
0006  * PPC64 virtual I/O console server support.
0007  */
0008 
0009 #ifndef _PPC64_HVCSERVER_H
0010 #define _PPC64_HVCSERVER_H
0011 #ifdef __KERNEL__
0012 
0013 #include <linux/list.h>
0014 
0015 /* Converged Location Code length */
0016 #define HVCS_CLC_LENGTH 79
0017 
0018 /**
0019  * hvcs_partner_info - an element in a list of partner info
0020  * @node: list_head denoting this partner_info struct's position in the list of
0021  *  partner info.
0022  * @unit_address: The partner unit address of this entry.
0023  * @partition_ID: The partner partition ID of this entry.
0024  * @location_code: The converged location code of this entry + 1 char for the
0025  *  null-term.
0026  *
0027  * This structure outlines the format that partner info is presented to a caller
0028  * of the hvcs partner info fetching functions.  These are strung together into
0029  * a list using linux kernel lists.
0030  */
0031 struct hvcs_partner_info {
0032     struct list_head node;
0033     uint32_t unit_address;
0034     uint32_t partition_ID;
0035     char location_code[HVCS_CLC_LENGTH + 1]; /* CLC + 1 null-term char */
0036 };
0037 
0038 extern int hvcs_free_partner_info(struct list_head *head);
0039 extern int hvcs_get_partner_info(uint32_t unit_address,
0040         struct list_head *head, unsigned long *pi_buff);
0041 extern int hvcs_register_connection(uint32_t unit_address,
0042         uint32_t p_partition_ID, uint32_t p_unit_address);
0043 extern int hvcs_free_connection(uint32_t unit_address);
0044 
0045 #endif /* __KERNEL__ */
0046 #endif /* _PPC64_HVCSERVER_H */