#ifndef __SPROG_H__ #define __SPROG_H__ #include #define array_size(x) (sizeof(x)/sizeof(*x)) struct sprog_data { int size; int alloc; unsigned char *data; }; struct sprog_family { void *(*setup)(struct serial_device *dev); void (*init)(void *arg); void (*exec)(void *arg, const struct sprog_data *d); void (*write)(void *arg, const struct sprog_data *d); void (*close)(void *arg); }; extern const char sprog_version[]; void sprog_communicate(const struct sprog_family *fam, const struct sprog_data *d, int mode, const char *port, int baud); int sprog_getline(char *buf, int len, int timeout); int sprog_waitdata(struct serial_device *port, int timeout); void sprog_info(const char *text, ...); void sprog_error(const char *text, ...); void sprog_sleep(int msec); void sprog_load(struct sprog_data *d, const char *path); void sprog_alloc_data(struct sprog_data *d, int len); void sprog_append_data(struct sprog_data *d, const char *data, int len); void sprog_progress(int progress, int total); #endif