162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * hvconsole.h
462306a36Sopenharmony_ci * Copyright (C) 2004 Ryan S Arnold, IBM Corporation
562306a36Sopenharmony_ci *
662306a36Sopenharmony_ci * LPAR console support.
762306a36Sopenharmony_ci */
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#ifndef _PPC64_HVCONSOLE_H
1062306a36Sopenharmony_ci#define _PPC64_HVCONSOLE_H
1162306a36Sopenharmony_ci#ifdef __KERNEL__
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci/*
1462306a36Sopenharmony_ci * PSeries firmware will only send/recv up to 16 bytes of character data per
1562306a36Sopenharmony_ci * hcall.
1662306a36Sopenharmony_ci */
1762306a36Sopenharmony_ci#define MAX_VIO_PUT_CHARS	16
1862306a36Sopenharmony_ci#define SIZE_VIO_GET_CHARS	16
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci/*
2162306a36Sopenharmony_ci * Vio firmware always attempts to fetch MAX_VIO_GET_CHARS chars.  The 'count'
2262306a36Sopenharmony_ci * parm is included to conform to put_chars() function pointer template
2362306a36Sopenharmony_ci */
2462306a36Sopenharmony_ciextern int hvc_get_chars(uint32_t vtermno, char *buf, int count);
2562306a36Sopenharmony_ciextern int hvc_put_chars(uint32_t vtermno, const char *buf, int count);
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci/* Provided by HVC VIO */
2862306a36Sopenharmony_civoid hvc_vio_init_early(void);
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci#endif /* __KERNEL__ */
3162306a36Sopenharmony_ci#endif /* _PPC64_HVCONSOLE_H */
32