typedef size_t socklen_t;
-#define PF_UNIX 0
+#define PF_UNSPEC 0
+#define PF_UNIX 1
#define PF_LOCAL PF_UNIX
-#define PF_INET 1
-#define PF_INET6 2
+#define PF_INET 2
+#define PF_INET6 3
+#define PF_MAX 4
+#define PF_VALID(_n) ((_n) >= PF_UNSPEC && (_n) < PF_MAX)
+
+#define AF_UNSPEC PF_UNSPEC
#define AF_UNIX PF_UNIX
#define AF_LOCAL AF_UNIX
#define AF_INET PF_INET
#define AF_INET6 PF_INET6
+#define AF_MAX PF_MAX
+
+#define AF_VALID(_n) ((_n) >= AF_UNSPEC && (_n) < AF_MAX)
#define SOCK_RAW 0
#define SOCK_DGRAM 1
#define SOCK_STREAM 2
#define SOCK_SEQPACKET 3
+#define SOCK_MAX 4
+
+#define SOCK_VALID(_n) ((_n) >= SOCK_RAW && (_n) < SOCK_MAX)
struct sockaddr {
u16_t so_family;