18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * Copyright 2020 IBM Corp.
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci */
68c2ecf20Sopenharmony_ci#ifndef _NX_H
78c2ecf20Sopenharmony_ci#define _NX_H
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ci#include <stdbool.h>
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ci#define	NX_FUNC_COMP_842	1
128c2ecf20Sopenharmony_ci#define NX_FUNC_COMP_GZIP	2
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_ci#ifndef __aligned
158c2ecf20Sopenharmony_ci#define __aligned(x)	__attribute__((aligned(x)))
168c2ecf20Sopenharmony_ci#endif
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_cistruct nx842_func_args {
198c2ecf20Sopenharmony_ci	bool use_crc;
208c2ecf20Sopenharmony_ci	bool decompress;		/* true decompress; false compress */
218c2ecf20Sopenharmony_ci	bool move_data;
228c2ecf20Sopenharmony_ci	int timeout;			/* seconds */
238c2ecf20Sopenharmony_ci};
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_cistruct nxbuf_t {
268c2ecf20Sopenharmony_ci	int len;
278c2ecf20Sopenharmony_ci	char *buf;
288c2ecf20Sopenharmony_ci};
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_ci/* @function should be EFT (aka 842), GZIP etc */
318c2ecf20Sopenharmony_civoid *nx_function_begin(int function, int pri);
328c2ecf20Sopenharmony_ci
338c2ecf20Sopenharmony_ciint nx_function(void *handle, struct nxbuf_t *in, struct nxbuf_t *out,
348c2ecf20Sopenharmony_ci		void *arg);
358c2ecf20Sopenharmony_ci
368c2ecf20Sopenharmony_ciint nx_function_end(void *handle);
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ci#endif	/* _NX_H */
39