summaryrefslogtreecommitdiffstats
path: root/mDNSResponder/mDNSVxWorks/mDNSVxWorks.h
diff options
context:
space:
mode:
Diffstat (limited to 'mDNSResponder/mDNSVxWorks/mDNSVxWorks.h')
-rw-r--r--mDNSResponder/mDNSVxWorks/mDNSVxWorks.h122
1 files changed, 122 insertions, 0 deletions
diff --git a/mDNSResponder/mDNSVxWorks/mDNSVxWorks.h b/mDNSResponder/mDNSVxWorks/mDNSVxWorks.h
new file mode 100644
index 00000000..afd41e36
--- /dev/null
+++ b/mDNSResponder/mDNSVxWorks/mDNSVxWorks.h
@@ -0,0 +1,122 @@
+/* -*- Mode: C; tab-width: 4 -*-
+ *
+ * Copyright (c) 2002-2005 Apple Computer, Inc. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __MDNS_VXWORKS_H__
+#define __MDNS_VXWORKS_H__
+
+#include "vxWorks.h"
+#include "config.h"
+
+#include "semLib.h"
+
+#include "CommonServices.h"
+#include "DebugServices.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// Forward Declarations
+
+typedef struct NetworkInterfaceInfoVxWorks NetworkInterfaceInfoVxWorks;
+
+//---------------------------------------------------------------------------------------------------------------------------
+/*! @struct SocketSet
+
+ @abstract Data for IPv4 and IPv6 sockets.
+ */
+
+typedef struct SocketSet SocketSet;
+struct SocketSet
+{
+ NetworkInterfaceInfoVxWorks * info;
+ SocketRef sockV4;
+ SocketRef sockV6;
+};
+
+//---------------------------------------------------------------------------------------------------------------------------
+/*! @struct NetworkInterfaceInfoVxWorks
+
+ @abstract Interface info for VxWorks.
+ */
+
+struct NetworkInterfaceInfoVxWorks
+{
+ NetworkInterfaceInfo ifinfo; // MUST be the first element in this structure.
+ NetworkInterfaceInfoVxWorks * next;
+ mDNSu32 exists; // 1 = currently exists in getifaddrs list; 0 = doesn't.
+ // 2 = exists, but McastTxRx state changed.
+ mDNSs32 lastSeen; // If exists == 0, last time this interface appeared in getifaddrs list.
+ mDNSu32 scopeID; // Interface index / IPv6 scope ID.
+ int family; // Socket address family of the primary socket.
+ mDNSBool multicast;
+ SocketSet ss;
+};
+
+//---------------------------------------------------------------------------------------------------------------------------
+/*! @struct mDNS_PlatformSupport_struct
+
+ @abstract Data for mDNS platform plugin.
+ */
+
+struct mDNS_PlatformSupport_struct
+{
+ NetworkInterfaceInfoVxWorks * interfaceList;
+ SocketSet unicastSS;
+ domainlabel userNiceLabel;
+ domainlabel userHostLabel;
+
+ SEM_ID lock;
+ SEM_ID initEvent;
+ mStatus initErr;
+ SEM_ID quitEvent;
+ int commandPipe;
+ int taskID;
+ mDNSBool quit;
+};
+
+//---------------------------------------------------------------------------------------------------------------------------
+/*! @function mDNSReconfigure
+
+ @abstract Tell mDNS that the configuration has changed. Call when IP address changes, link goes up after being down, etc.
+
+ @discussion
+
+ VxWorks does not provide a generic mechanism for getting notified when network interfaces change so this routines
+ provides a way for BSP-specific code to signal mDNS that something has changed and it should re-build its interfaces.
+ */
+
+void mDNSReconfigure( void );
+
+//---------------------------------------------------------------------------------------------------------------------------
+/*! @function mDNSDeferIPv4
+
+ @abstract Tells mDNS whether to defer advertising of IPv4 interfaces.
+
+ @discussion
+
+ To workaround problems with clients getting a link-local IPv4 address before a DHCP address is acquired, this allows
+ external code to defer advertising of IPv4 addresses until a DHCP lease has been acquired (or it times out).
+ */
+
+void mDNSDeferIPv4( mDNSBool inDefer );
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __MDNS_VXWORKS_H__