minix/sys/sys/un.h
David van Moolenbroek 10a344c3fd UDS: align struct sockaddr_un with NetBSD
Well, make a start, anyway. Our copy was missing a legacy field from
the structure, that could very well cause applications to fail trying
to set, clear, or check it. As a consequence, SUN_LEN now yields the
same result as on NetBSD.

Change-Id: I80f6aff7769be402b3bd3959f64d314509ed138c
2014-03-01 09:04:57 +01:00

36 lines
797 B
C

#ifndef _SYS_UN_H_
#define _SYS_UN_H_
#include <sys/ansi.h>
#include <sys/featuretest.h>
#include <sys/types.h>
#ifndef sa_family_t
typedef __sa_family_t sa_family_t;
#define sa_family_t __sa_family_t
#endif
#define UNIX_PATH_MAX 127
/*
* Definitions for UNIX IPC domain.
*/
struct sockaddr_un {
uint8_t sun_len;
sa_family_t sun_family;
char sun_path[UNIX_PATH_MAX];
};
#include <string.h>
/* Compute the actual length of a struct sockaddr_un pointed
* to by 'unp'. sun_path must be NULL terminated. Length does
* not include the NULL byte. This is not a POSIX standard
* definition, but BSD and Linux have it, so it is here for
* compatibility.
*/
#define SUN_LEN(unp) \
((size_t)((sizeof(*(unp)) - sizeof((unp)->sun_path)) + strlen((unp)->sun_path)))
#endif /* _SYS_UN_H_ */