Skip to content

Commit

Permalink
socket: Align struct sa_familty to allow safe casting between all soc…
Browse files Browse the repository at this point in the history
…kaddr_*

DONE: RTOS-546
  • Loading branch information
agkaminski committed Aug 8, 2023
1 parent 481eeeb commit 4ede3b4
Showing 1 changed file with 41 additions and 41 deletions.
82 changes: 41 additions & 41 deletions include/sys/socket.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
*
* sys/socket.h
*
* Copyright 2018 Phoenix Systems
* Author: Jan Sikorski, Michal Miroslaw
* Copyright 2018, 2023 Phoenix Systems
* Author: Jan Sikorski, Michal Miroslaw, Aleksander Kaminski
*
* This file is part of Phoenix-RTOS.
*
Expand Down Expand Up @@ -35,37 +35,37 @@
#define PF_KEY AF_KEY
#define PF_PACKET AF_PACKET

#define SOCK_STREAM 1
#define SOCK_DGRAM 2
#define SOCK_RAW 3
#define SOCK_STREAM 1
#define SOCK_DGRAM 2
#define SOCK_RAW 3
#define SOCK_SEQPACKET 4
#define SOCK_RDM 5

#define SOL_SOCKET 0xFFF
#define SO_ACCEPTCONN 0x0002
#define SO_BROADCAST 0x0020
#define SO_DEBUG 0x0001
#define SO_DONTROUTE 0x0010
#define SO_ERROR 0x1007
#define SO_KEEPALIVE 0x0008
#define SO_LINGER 0x0080
#define SO_OOBINLINE 0x0100
#define SO_RCVBUF 0x1002
#define SO_RCVLOWAT 0x1004
#define SO_RCVTIMEO 0x1006
#define SO_REUSEADDR 0x0004
#define SO_SNDBUF 0x1001
#define SO_SNDLOWAT 0x1003
#define SO_SNDTIMEO 0x1005
#define SO_TYPE 0x1008
#define SOCK_RDM 5

#define SOL_SOCKET 0xFFF
#define SO_ACCEPTCONN 0x0002
#define SO_BROADCAST 0x0020
#define SO_DEBUG 0x0001
#define SO_DONTROUTE 0x0010
#define SO_ERROR 0x1007
#define SO_KEEPALIVE 0x0008
#define SO_LINGER 0x0080
#define SO_OOBINLINE 0x0100
#define SO_RCVBUF 0x1002
#define SO_RCVLOWAT 0x1004
#define SO_RCVTIMEO 0x1006
#define SO_REUSEADDR 0x0004
#define SO_SNDBUF 0x1001
#define SO_SNDLOWAT 0x1003
#define SO_SNDTIMEO 0x1005
#define SO_TYPE 0x1008
#define SO_BINDTODEVICE 0x100b

#define MSG_OOB 0x01
#define MSG_PEEK 0x02
#define MSG_OOB 0x01
#define MSG_PEEK 0x02
#define MSG_DONTWAIT 0x08

#define SHUT_RD 0
#define SHUT_WR 1
#define SHUT_RD 0
#define SHUT_WR 1
#define SHUT_RDWR 2

#define SCM_RIGHTS 1
Expand All @@ -76,19 +76,19 @@ extern "C" {
#endif


typedef uint16_t sa_family_t; // match lwIP size: u8 len + u8 family
/* Match lwIP size: u8 len + u8 family. Align to allow safe sockaddr_* casting */
typedef uint16_t sa_family_t __attribute__((aligned(4)));


struct sockaddr {
sa_family_t sa_family;
char sa_data[14]; // actual size may be bigger

char sa_data[14]; /* actual size may be bigger */
};


struct sockaddr_storage {
sa_family_t ss_family;
char ss_data[128-sizeof(sa_family_t)];
char ss_data[128 - sizeof(sa_family_t)];
};


Expand All @@ -97,25 +97,25 @@ struct linger {
int l_linger;
};

// has to be included after sockaddr is defined
/* has to be included after sockaddr is defined */
#include <sys/sockios.h>


struct msghdr {
void *msg_name;
socklen_t msg_namelen;
void *msg_name;
socklen_t msg_namelen;
struct iovec *msg_iov;
int msg_iovlen;
void *msg_control;
socklen_t msg_controllen;
int msg_flags;
int msg_iovlen;
void *msg_control;
socklen_t msg_controllen;
int msg_flags;
};


struct cmsghdr {
socklen_t cmsg_len;
int cmsg_level;
int cmsg_type;
int cmsg_level;
int cmsg_type;
};


Expand Down

0 comments on commit 4ede3b4

Please sign in to comment.