changed packed definitions
This commit is contained in:
		@ -130,9 +130,8 @@ am__DEPENDENCIES_1 =
 | 
			
		||||
am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1)
 | 
			
		||||
libstio_la_DEPENDENCIES = $(am__DEPENDENCIES_2)
 | 
			
		||||
am_libstio_la_OBJECTS = libstio_la-stio.lo libstio_la-stio-pro.lo \
 | 
			
		||||
	libstio_la-stio-sck.lo libstio_la-stio-tcp.lo \
 | 
			
		||||
	libstio_la-stio-tim.lo libstio_la-stio-tmr.lo \
 | 
			
		||||
	libstio_la-stio-udp.lo
 | 
			
		||||
	libstio_la-stio-sck.lo libstio_la-stio-tim.lo \
 | 
			
		||||
	libstio_la-stio-tmr.lo
 | 
			
		||||
libstio_la_OBJECTS = $(am_libstio_la_OBJECTS)
 | 
			
		||||
AM_V_lt = $(am__v_lt_@AM_V@)
 | 
			
		||||
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 | 
			
		||||
@ -382,8 +381,6 @@ pkginclude_HEADERS = \
 | 
			
		||||
	stio-cmn.h \
 | 
			
		||||
	stio-pro.h \
 | 
			
		||||
	stio-sck.h \
 | 
			
		||||
	stio-tcp.h \
 | 
			
		||||
	stio-udp.h \
 | 
			
		||||
	stio.h
 | 
			
		||||
 | 
			
		||||
pkglib_LTLIBRARIES = libstio.la
 | 
			
		||||
@ -392,10 +389,8 @@ libstio_la_SOURCES = \
 | 
			
		||||
	stio.c \
 | 
			
		||||
	stio-pro.c \
 | 
			
		||||
	stio-sck.c \
 | 
			
		||||
	stio-tcp.c \
 | 
			
		||||
	stio-tim.c \
 | 
			
		||||
	stio-tmr.c \
 | 
			
		||||
	stio-udp.c
 | 
			
		||||
	stio-tmr.c
 | 
			
		||||
 | 
			
		||||
libstio_la_CPPFLAGS = $(CPPFLAGS_LIB_COMMON)
 | 
			
		||||
libstio_la_LDFLAGS = $(LDFLAGS_LIB_COMMON)
 | 
			
		||||
@ -554,10 +549,8 @@ distclean-compile:
 | 
			
		||||
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstio_la-stio-pro.Plo@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstio_la-stio-sck.Plo@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstio_la-stio-tcp.Plo@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstio_la-stio-tim.Plo@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstio_la-stio-tmr.Plo@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstio_la-stio-udp.Plo@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstio_la-stio.Plo@am__quote@
 | 
			
		||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stio-main.Po@am__quote@
 | 
			
		||||
 | 
			
		||||
@ -603,13 +596,6 @@ libstio_la-stio-sck.lo: stio-sck.c
 | 
			
		||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 | 
			
		||||
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstio_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libstio_la-stio-sck.lo `test -f 'stio-sck.c' || echo '$(srcdir)/'`stio-sck.c
 | 
			
		||||
 | 
			
		||||
libstio_la-stio-tcp.lo: stio-tcp.c
 | 
			
		||||
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstio_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libstio_la-stio-tcp.lo -MD -MP -MF $(DEPDIR)/libstio_la-stio-tcp.Tpo -c -o libstio_la-stio-tcp.lo `test -f 'stio-tcp.c' || echo '$(srcdir)/'`stio-tcp.c
 | 
			
		||||
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libstio_la-stio-tcp.Tpo $(DEPDIR)/libstio_la-stio-tcp.Plo
 | 
			
		||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='stio-tcp.c' object='libstio_la-stio-tcp.lo' libtool=yes @AMDEPBACKSLASH@
 | 
			
		||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 | 
			
		||||
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstio_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libstio_la-stio-tcp.lo `test -f 'stio-tcp.c' || echo '$(srcdir)/'`stio-tcp.c
 | 
			
		||||
 | 
			
		||||
libstio_la-stio-tim.lo: stio-tim.c
 | 
			
		||||
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstio_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libstio_la-stio-tim.lo -MD -MP -MF $(DEPDIR)/libstio_la-stio-tim.Tpo -c -o libstio_la-stio-tim.lo `test -f 'stio-tim.c' || echo '$(srcdir)/'`stio-tim.c
 | 
			
		||||
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libstio_la-stio-tim.Tpo $(DEPDIR)/libstio_la-stio-tim.Plo
 | 
			
		||||
@ -624,13 +610,6 @@ libstio_la-stio-tmr.lo: stio-tmr.c
 | 
			
		||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 | 
			
		||||
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstio_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libstio_la-stio-tmr.lo `test -f 'stio-tmr.c' || echo '$(srcdir)/'`stio-tmr.c
 | 
			
		||||
 | 
			
		||||
libstio_la-stio-udp.lo: stio-udp.c
 | 
			
		||||
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstio_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libstio_la-stio-udp.lo -MD -MP -MF $(DEPDIR)/libstio_la-stio-udp.Tpo -c -o libstio_la-stio-udp.lo `test -f 'stio-udp.c' || echo '$(srcdir)/'`stio-udp.c
 | 
			
		||||
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libstio_la-stio-udp.Tpo $(DEPDIR)/libstio_la-stio-udp.Plo
 | 
			
		||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='stio-udp.c' object='libstio_la-stio-udp.lo' libtool=yes @AMDEPBACKSLASH@
 | 
			
		||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 | 
			
		||||
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstio_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libstio_la-stio-udp.lo `test -f 'stio-udp.c' || echo '$(srcdir)/'`stio-udp.c
 | 
			
		||||
 | 
			
		||||
stio-main.o: main.c
 | 
			
		||||
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stio_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT stio-main.o -MD -MP -MF $(DEPDIR)/stio-main.Tpo -c -o stio-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c
 | 
			
		||||
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/stio-main.Tpo $(DEPDIR)/stio-main.Po
 | 
			
		||||
 | 
			
		||||
@ -404,6 +404,26 @@ static int dev_sck_ioctl (stio_dev_t* dev, int cmd, void* arg)
 | 
			
		||||
			stio_sckfam_t fam;
 | 
			
		||||
			int x;
 | 
			
		||||
 | 
			
		||||
			if (bnd->options & STIO_DEV_SCK_BIND_BROADCAST)
 | 
			
		||||
			{
 | 
			
		||||
				int v = 1;
 | 
			
		||||
				if (setsockopt (rdev->sck, SOL_SOCKET, SO_BROADCAST, &v, STIO_SIZEOF(v)) == -1)
 | 
			
		||||
				{
 | 
			
		||||
					rdev->stio->errnum = stio_syserrtoerrnum(errno);
 | 
			
		||||
					return -1;
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			if (bnd->options & STIO_DEV_SCK_BIND_REUSEADDR)
 | 
			
		||||
			{
 | 
			
		||||
				int v = 1;
 | 
			
		||||
				if (setsockopt (rdev->sck, SOL_SOCKET, SO_REUSEADDR, &v, STIO_SIZEOF(v)) == -1)
 | 
			
		||||
				{
 | 
			
		||||
					rdev->stio->errnum = stio_syserrtoerrnum(errno);
 | 
			
		||||
					return -1;
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			if (stio_getsckadrinfo (dev->stio, &bnd->addr, &sl, &fam) <= -1) return -1;
 | 
			
		||||
 | 
			
		||||
			/* the socket is already non-blocking */
 | 
			
		||||
 | 
			
		||||
@ -142,11 +142,19 @@ struct stio_dev_sck_make_t
 | 
			
		||||
	stio_dev_sck_on_read_t on_read;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
enum stio_dev_sck_bind_option_t
 | 
			
		||||
{
 | 
			
		||||
	STIO_DEV_SCK_BIND_BROADCAST = (1 << 0),
 | 
			
		||||
	STIO_DEV_SCK_BIND_REUSEADDR = (1 << 1)
 | 
			
		||||
/* TODO: more options --- TRANSPARENT...SO_RCVBUF, SO_SNDBUF, SO_RCVTIMEO, SO_SNDTIMEO, SO_KEEPALIVE */
 | 
			
		||||
};
 | 
			
		||||
typedef enum stio_dev_sck_bind_option_t stio_dev_sck_bind_option_t;
 | 
			
		||||
 | 
			
		||||
typedef struct stio_dev_sck_bind_t stio_dev_sck_bind_t;
 | 
			
		||||
struct stio_dev_sck_bind_t
 | 
			
		||||
{
 | 
			
		||||
	int options;
 | 
			
		||||
	stio_sckadr_t addr;
 | 
			
		||||
	/*int opts;*/ /* TODO: REUSEADDR , TRANSPARENT, etc  or someting?? */
 | 
			
		||||
	/* TODO: add device name for BIND_TO_DEVICE */
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -286,9 +286,6 @@ enum stio_dev_event_t
 | 
			
		||||
typedef enum stio_dev_event_t stio_dev_event_t;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* ========================================================================= */
 | 
			
		||||
/* TOOD: move these to a separte file */
 | 
			
		||||
 | 
			
		||||
@ -305,28 +302,44 @@ typedef enum stio_dev_event_t stio_dev_event_t;
 | 
			
		||||
#define STIO_IP4ADR_LEN 4
 | 
			
		||||
#define STIO_IP6ADR_LEN 16 
 | 
			
		||||
 | 
			
		||||
#pragma pack(push)
 | 
			
		||||
#pragma pack(1)
 | 
			
		||||
struct stio_ethadr_t
 | 
			
		||||
 | 
			
		||||
#if defined(__GNUC__)
 | 
			
		||||
#	define STIO_PACKED __attribute__((__packed__))
 | 
			
		||||
 | 
			
		||||
#else
 | 
			
		||||
#	define STIO_PACKED 
 | 
			
		||||
#	STIO_PACK_PUSH pack(push)
 | 
			
		||||
#	STIO_PACK_PUSH pack(push)
 | 
			
		||||
#	STIO_PACK(x) pack(x)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#if defined(__GNUC__)
 | 
			
		||||
	/* nothing */
 | 
			
		||||
#else
 | 
			
		||||
	#pragma pack(push)
 | 
			
		||||
	#pragma pack(1)
 | 
			
		||||
#endif
 | 
			
		||||
struct STIO_PACKED stio_ethadr_t
 | 
			
		||||
{
 | 
			
		||||
	stio_uint8_t v[STIO_ETHADR_LEN]; 
 | 
			
		||||
};
 | 
			
		||||
typedef struct stio_ethadr_t stio_ethadr_t;
 | 
			
		||||
 | 
			
		||||
struct stio_ip4adr_t
 | 
			
		||||
struct STIO_PACKED stio_ip4adr_t
 | 
			
		||||
{
 | 
			
		||||
	stio_uint8_t v[STIO_IP4ADR_LEN];
 | 
			
		||||
};
 | 
			
		||||
typedef struct stio_ip4adr_t stio_ip4adr_t;
 | 
			
		||||
 | 
			
		||||
struct stio_ip6adr_t
 | 
			
		||||
struct STIO_PACKED stio_ip6adr_t
 | 
			
		||||
{
 | 
			
		||||
	stio_uint8_t v[STIO_IP6ADR_LEN]; 
 | 
			
		||||
};
 | 
			
		||||
typedef struct stio_ip6adr_t stio_ip6adr_t;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
struct stio_ethhdr_t
 | 
			
		||||
struct STIO_PACKED stio_ethhdr_t
 | 
			
		||||
{
 | 
			
		||||
	stio_uint8_t  dest[STIO_ETHADR_LEN];
 | 
			
		||||
	stio_uint8_t  source[STIO_ETHADR_LEN];
 | 
			
		||||
@ -334,7 +347,7 @@ struct stio_ethhdr_t
 | 
			
		||||
};
 | 
			
		||||
typedef struct stio_ethhdr_t stio_ethhdr_t;
 | 
			
		||||
 | 
			
		||||
struct stio_arphdr_t
 | 
			
		||||
struct STIO_PACKED stio_arphdr_t
 | 
			
		||||
{
 | 
			
		||||
	stio_uint16_t htype;   /* hardware type (ethernet: 0x0001) */
 | 
			
		||||
	stio_uint16_t ptype;   /* protocol type (ipv4: 0x0800) */
 | 
			
		||||
@ -345,7 +358,7 @@ struct stio_arphdr_t
 | 
			
		||||
typedef struct stio_arphdr_t stio_arphdr_t;
 | 
			
		||||
 | 
			
		||||
/* arp payload for ipv4 over ethernet */
 | 
			
		||||
struct stio_etharp_t
 | 
			
		||||
struct STIO_PACKED stio_etharp_t
 | 
			
		||||
{
 | 
			
		||||
	stio_uint8_t sha[STIO_ETHADR_LEN];   /* source hardware address */
 | 
			
		||||
	stio_uint8_t spa[STIO_IP4ADR_LEN];   /* source protocol address */
 | 
			
		||||
@ -354,14 +367,19 @@ struct stio_etharp_t
 | 
			
		||||
};
 | 
			
		||||
typedef struct stio_etharp_t stio_etharp_t;
 | 
			
		||||
 | 
			
		||||
struct stio_etharp_pkt_t
 | 
			
		||||
struct STIO_PACKED stio_etharp_pkt_t
 | 
			
		||||
{
 | 
			
		||||
	stio_ethhdr_t ethhdr;
 | 
			
		||||
	stio_arphdr_t arphdr;
 | 
			
		||||
	stio_etharp_t arppld;
 | 
			
		||||
};
 | 
			
		||||
typedef struct stio_etharp_pkt_t stio_etharp_pkt_t;
 | 
			
		||||
#pragma pack(pop)
 | 
			
		||||
 | 
			
		||||
#if defined(__GNUC__)
 | 
			
		||||
	/* nothing */
 | 
			
		||||
#else
 | 
			
		||||
	#pragma pack(pop)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* ========================================================================= */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user