#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <stdarg.h>
#include <time.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#define MAXDATA 256
#define QUEUELEN 1024
#define NQUEUE 5
#define MAXWAIT 5
#define MIN(a,b) ((a)<(b)?(a):(b))
#define RETVAL_MALLOC 1
#define RETVAL_SOCKET 2
#define RETVAL_DEVICE 3
#define RETVAL_SEND 4
#define RETVAL_RECV 5
#define RETVAL_QUEUE 6
#define RETVAL_WAIT 7
#define RETVAL_WRITE 8
#define LX_ERROR_NO_ERROR 0
#define LX_ERROR_MEMORY 1
#define LX_ERROR_NETWORK 2
#define LX_ERROR_NOT_FOUND 3
#define LX_ERROR_ACTIVATE 4
struct commstr;
struct devinfo;
struct cliinfo;
struct udppacket;
int initsock(char *ip);
void setupstr(struct commstr *str, unsigned char code, unsigned acc, unsigned short d0E,
unsigned short d10, unsigned short d12, unsigned short datalen);
void sendstr(struct commstr *str);
void sendpacket(unsigned char code, unsigned acc, unsigned short d0E,
unsigned short d10, unsigned short d12, unsigned short datalen, ...);
void sendsimple(unsigned char code, unsigned acc, unsigned short d0E,
unsigned short d10, unsigned short d12);
void sendpacket_va(unsigned char code, unsigned acc, unsigned short d0E,
unsigned short d10, unsigned short d12, unsigned short datalen, va_list ap);
void sendconfig(unsigned acc, unsigned short datalen, ...);
struct commstr *readpacket(int sock);
void dispatch(struct commstr *str);
struct commstr *waitpacket(unsigned char code);
struct commstr *waitpacket61(unsigned short code);
struct commstr *waitpacket_sid(unsigned sid);
int opendev_lx(int addr, int *acc);
int closedev_lx(int addr);
char *deverror_lx(int addr);
int write_lx(unsigned acc, void *buf, size_t count);
int read_lx(unsigned acc, void *buf, size_t count);