2011-04-12 02:30:40 -05:00
|
|
|
#ifndef AUCAT_H
|
|
|
|
#define AUCAT_H
|
|
|
|
|
|
|
|
#include "amsg.h"
|
|
|
|
|
|
|
|
struct aucat {
|
|
|
|
int fd; /* socket */
|
|
|
|
struct amsg rmsg, wmsg; /* temporary messages */
|
|
|
|
size_t wtodo, rtodo; /* bytes to complete the packet */
|
2011-04-12 02:34:22 -05:00
|
|
|
#define RSTATE_MSG 0 /* message being received */
|
|
|
|
#define RSTATE_DATA 1 /* data being received */
|
2011-04-12 02:30:40 -05:00
|
|
|
unsigned rstate; /* one of above */
|
2011-04-12 02:34:22 -05:00
|
|
|
#define WSTATE_IDLE 2 /* nothing to do */
|
|
|
|
#define WSTATE_MSG 3 /* message being transferred */
|
|
|
|
#define WSTATE_DATA 4 /* data being transferred */
|
2011-04-12 02:30:40 -05:00
|
|
|
unsigned wstate; /* one of above */
|
|
|
|
};
|
|
|
|
|
|
|
|
int aucat_rmsg(struct aucat *, int *);
|
|
|
|
int aucat_wmsg(struct aucat *, int *);
|
|
|
|
size_t aucat_rdata(struct aucat *, void *, size_t, int *);
|
|
|
|
size_t aucat_wdata(struct aucat *, const void *, size_t, unsigned, int *);
|
2011-11-01 07:02:13 -05:00
|
|
|
int aucat_open(struct aucat *, const char *, unsigned, unsigned);
|
2011-04-12 02:30:40 -05:00
|
|
|
void aucat_close(struct aucat *, int);
|
|
|
|
int aucat_pollfd(struct aucat *, struct pollfd *, int);
|
|
|
|
int aucat_revents(struct aucat *, struct pollfd *);
|
2011-04-12 16:50:05 -05:00
|
|
|
int aucat_setfl(struct aucat *, int, int *);
|
2011-04-12 02:30:40 -05:00
|
|
|
|
|
|
|
#endif /* !defined(AUCAT_H) */
|