162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci *    Hypervisor filesystem for Linux on s390. Diag 204 and 224
462306a36Sopenharmony_ci *    implementation.
562306a36Sopenharmony_ci *
662306a36Sopenharmony_ci *    Copyright IBM Corp. 2006, 2008
762306a36Sopenharmony_ci *    Author(s): Michael Holzheu <holzheu@de.ibm.com>
862306a36Sopenharmony_ci */
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci#ifndef _S390_HYPFS_DIAG_H_
1162306a36Sopenharmony_ci#define _S390_HYPFS_DIAG_H_
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci#include <asm/diag.h>
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_cienum diag204_format diag204_get_info_type(void);
1662306a36Sopenharmony_civoid *diag204_get_buffer(enum diag204_format fmt, int *pages);
1762306a36Sopenharmony_ciint diag204_store(void *buf, int pages);
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ciint __hypfs_diag_fs_init(void);
2062306a36Sopenharmony_civoid __hypfs_diag_fs_exit(void);
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_cistatic inline int hypfs_diag_fs_init(void)
2362306a36Sopenharmony_ci{
2462306a36Sopenharmony_ci	if (IS_ENABLED(CONFIG_S390_HYPFS_FS))
2562306a36Sopenharmony_ci		return __hypfs_diag_fs_init();
2662306a36Sopenharmony_ci	return 0;
2762306a36Sopenharmony_ci}
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_cistatic inline void hypfs_diag_fs_exit(void)
3062306a36Sopenharmony_ci{
3162306a36Sopenharmony_ci	if (IS_ENABLED(CONFIG_S390_HYPFS_FS))
3262306a36Sopenharmony_ci		__hypfs_diag_fs_exit();
3362306a36Sopenharmony_ci}
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci#endif /* _S390_HYPFS_DIAG_H_ */
36