#include <sys/socket.h>
#include <sys/ioctl.h>
-#include <linux/if.h>
+
+#ifdef __linux__
+# include <linux/if.h>
+#endif
#include "internal.h"
__FUNCTION__, __LINE__, __VA_ARGS__)
/*
- * chgIfFlags: Change flags on an interface
+ * chgIfaceFlags: Change flags on an interface
*
* @ifname : name of the interface
* @flagclear : the flags to clear
*
* Returns 0 on success, errno on failure.
*/
+#ifdef __linux__
static int chgIfaceFlags(const char *ifname, short flagclear, short flagset) {
struct ifreq ifr;
int rc = 0;
(up) ? IFF_UP : 0);
}
+#else
+
+int
+ifaceCtrl(const char *name ATTRIBUTE_UNUSED, bool up ATTRIBUTE_UNUSED)
+{
+ return ENOSYS;
+}
+
+#endif /* __linux__ */
/**
* ifaceCheck
* index is different than the one passed
* EINVAL : if interface name is invalid (too long)
*/
+#ifdef __linux__
int
ifaceCheck(bool reportError, const char *ifname,
const unsigned char *macaddr, int ifindex)
return rc;
}
+#else
+
+int
+ifaceCheck(bool reportError ATTRIBUTE_UNUSED,
+ const char *ifname ATTRIBUTE_UNUSED,
+ const unsigned char *macaddr ATTRIBUTE_UNUSED,
+ int ifindex ATTRIBUTE_UNUSED)
+{
+ return ENOSYS;
+}
+
+#endif /* __linux__ */
+
/**
* ifaceGetIndex
* ENODEV : if interface with given name does not exist
* EINVAL : if interface name is invalid (too long)
*/
+#ifdef __linux__
int
ifaceGetIndex(bool reportError, const char *ifname, int *ifindex)
{
return rc;
}
+
+#else
+
+int
+ifaceGetIndex(bool reportError,
+ const char *ifname ATTRIBUTE_UNUSED,
+ int *ifindex ATTRIBUTE_UNUSED)
+{
+ if (reportError) {
+ ifaceError(VIR_ERR_INTERNAL_ERROR, "%s",
+ _("ifaceGetIndex is not supported on non-linux platforms"));
+ }
+
+ return ENOSYS;
+}
+
+#endif /* __linux__ */