diff options
Diffstat (limited to 'contrib/syslinux-4.02/com32/sysdump/backend.h')
-rw-r--r-- | contrib/syslinux-4.02/com32/sysdump/backend.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/contrib/syslinux-4.02/com32/sysdump/backend.h b/contrib/syslinux-4.02/com32/sysdump/backend.h new file mode 100644 index 0000000..f2b3bc2 --- /dev/null +++ b/contrib/syslinux-4.02/com32/sysdump/backend.h @@ -0,0 +1,55 @@ +#ifndef BACKEND_H +#define BACKEND_H + +#include <stddef.h> +#include <inttypes.h> +#include <stdbool.h> +#include <zlib.h> +#include "serial.h" + +/* Backend flags */ +#define BE_NEEDLEN 0x01 + +struct backend { + const char *name; + const char *helpmsg; + int minargs; + + size_t dbytes; + size_t zbytes; + const char **argv; + + uint32_t now; + + int (*write)(struct backend *); + + z_stream zstream; + char *outbuf; + size_t alloc; +}; + +/* zout.c */ +int init_data(struct backend *be, const char *argv[]); +int write_data(struct backend *be, const void *buf, size_t len); +int flush_data(struct backend *be); + +/* cpio.c */ +#define cpio_init init_data +int cpio_hdr(struct backend *be, uint32_t mode, size_t datalen, + const char *filename); +int cpio_mkdir(struct backend *be, const char *filename); +int cpio_writefile(struct backend *be, const char *filename, + const void *data, size_t len); +int cpio_close(struct backend *be); +#define MODE_FILE 0100644 +#define MODE_DIR 0040755 + +/* backends.c */ +struct backend *get_backend(const char *name); + +/* backends */ +extern struct backend be_tftp; +extern struct backend be_ymodem; +extern struct backend be_srec; + +#endif /* BACKEND_H */ |