1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-or-later */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * Copyright 2020 IBM Corp. 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun */ 6*4882a593Smuzhiyun #ifndef _NX_H 7*4882a593Smuzhiyun #define _NX_H 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun #include <stdbool.h> 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun #define NX_FUNC_COMP_842 1 12*4882a593Smuzhiyun #define NX_FUNC_COMP_GZIP 2 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun #ifndef __aligned 15*4882a593Smuzhiyun #define __aligned(x) __attribute__((aligned(x))) 16*4882a593Smuzhiyun #endif 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun struct nx842_func_args { 19*4882a593Smuzhiyun bool use_crc; 20*4882a593Smuzhiyun bool decompress; /* true decompress; false compress */ 21*4882a593Smuzhiyun bool move_data; 22*4882a593Smuzhiyun int timeout; /* seconds */ 23*4882a593Smuzhiyun }; 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun struct nxbuf_t { 26*4882a593Smuzhiyun int len; 27*4882a593Smuzhiyun char *buf; 28*4882a593Smuzhiyun }; 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun /* @function should be EFT (aka 842), GZIP etc */ 31*4882a593Smuzhiyun void *nx_function_begin(int function, int pri); 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun int nx_function(void *handle, struct nxbuf_t *in, struct nxbuf_t *out, 34*4882a593Smuzhiyun void *arg); 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun int nx_function_end(void *handle); 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun #endif /* _NX_H */ 39