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