162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright 2020 IBM Corp.
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci */
662306a36Sopenharmony_ci#ifndef _NX_H
762306a36Sopenharmony_ci#define _NX_H
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#include <stdbool.h>
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci#define	NX_FUNC_COMP_842	1
1262306a36Sopenharmony_ci#define NX_FUNC_COMP_GZIP	2
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci#ifndef __aligned
1562306a36Sopenharmony_ci#define __aligned(x)	__attribute__((aligned(x)))
1662306a36Sopenharmony_ci#endif
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_cistruct nx842_func_args {
1962306a36Sopenharmony_ci	bool use_crc;
2062306a36Sopenharmony_ci	bool decompress;		/* true decompress; false compress */
2162306a36Sopenharmony_ci	bool move_data;
2262306a36Sopenharmony_ci	int timeout;			/* seconds */
2362306a36Sopenharmony_ci};
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_cistruct nxbuf_t {
2662306a36Sopenharmony_ci	int len;
2762306a36Sopenharmony_ci	char *buf;
2862306a36Sopenharmony_ci};
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci/* @function should be EFT (aka 842), GZIP etc */
3162306a36Sopenharmony_civoid *nx_function_begin(int function, int pri);
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ciint nx_function(void *handle, struct nxbuf_t *in, struct nxbuf_t *out,
3462306a36Sopenharmony_ci		void *arg);
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ciint nx_function_end(void *handle);
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci#endif	/* _NX_H */
39