versadac  1
versadac - Scalable Recorder Firmware
mDNSVxWorks.h
1 /* -*- Mode: C; tab-width: 4 -*-
2  *
3  * Copyright (c) 2002-2003 Apple Computer, Inc. All rights reserved.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16 
17  Contains: mDNS platform plugin for VxWorks.
18 
19  Copyright: Copyright (C) 2002-2003 Apple Computer, Inc., All Rights Reserved.
20 
21  */
22 
23 #ifndef __MDNS_VXWORKS__
24 #define __MDNS_VXWORKS__
25 
26 #include "vxWorks.h"
27 #include "semLib.h"
28 #include "mDNSEmbeddedAPI.h"
29 
30 #ifdef __cplusplus
31  extern "C" {
32 #endif
33 
34 #define BONJ_MAX_NUMBER_OF_SERVICES 4
35 #define BONJ_MODBUS_SERVICE 0x01
36 #define BONJ_PROFINET_SERVICE 0x02
37 #define BONJ_ETHERNETIP_SERVICE 0x04
38 #define BONJ_HTTP_SERVICE 0x08
39 #define BONJ_ALL_SERVICES 0x0F
40 
41 #define BONJ_MAX_LEN 18
42 #define BONJ_TASK_STOPPED 0
43 #define BONJ_TASK_RUNNING 1
44 
45 /* Forward Declarations */
47 typedef void ( *TCPUserCallback )();
48 
50 {
51  TCPSocketFlags flags;
52  int fd;
53  mDNSBool connected;
54  TCPUserCallback userCallback;
55  void * userContext;
56  mDNSBool closed;
57  mDNS * m;
58 };
59 
61 {
62  mDNSIPPort port; /* MUST BE FIRST FIELD -- mDNSCoreReceive expects every UDPSocket_struct to begin with mDNSIPPort port */
63  mDNSAddr addr; /* This is initialized by our code. If we don't get the */
64  /* dstAddr from WSARecvMsg we use this value instead */
65  int fd;
66  char * recvMsgPtr;
67  DNSMessage packet;
68  struct mDNSInterfaceData *ifd;
69  UDPSocket *next;
70  mDNS *m;
71 };
72 
73 /* Structure containing platform-specific data */
75 {
76  SEM_ID lockID;
77  SEM_ID readyEvent;
78  mStatus taskInitErr;
79  SEM_ID quitEvent;
80  MDNSInterfaceItem * interfaceList;
81  int commandPipe;
82  int task;
83  mDNSBool quit;
84  long configID;
85  int rescheduled;
86 
87  struct UDPSocket_struct unicastSock4;
88  struct UDPSocket_struct unicastSock6;
89 };
90 
91 /* Interface information */
92 struct ifaddrs
93 {
94  struct ifaddrs * ifa_next;
95  char * ifa_name;
96  u_int ifa_flags;
97  struct sockaddr * ifa_addr;
98  struct sockaddr * ifa_netmask;
99  struct sockaddr * ifa_dstaddr;
100  void * ifa_data;
101 };
102 
103 /* configuration structure used to configure the bonjour server */
104 typedef struct _bonjour_config
105 {
106  char interfaceName[BONJ_MAX_LEN];
107  char defaultName[BONJ_MAX_LEN];
108  char domain[BONJ_MAX_LEN];
109  char pname[240];
110  int taskPriority;
111  int taskStack;
112  int taskStatus;
113  unsigned char mac[6];
114 
115  /* the following MUST always be 16 bit values */
116  unsigned short services;
117  unsigned short vendor;
118  unsigned short type;
119  unsigned short swver;
120  unsigned short hwver;
121  unsigned short mbaddr;
122  unsigned short serial_no;
123 
125 
126 typedef struct _change_service
127 {
128  int id;
129  int port;
130  int service;
131  char text[101];
132 
134 
135 void mDNSPlatform_get_ifaddrs (struct ifaddrs ** outAddrs);
136 void mDNSPlatform_free_ifaddrs (struct ifaddrs * inAddrs);
137 int mDNSPlatform_sock_pton (const char * inString, int inFamily, void * outAddr, size_t inAddrSize, size_t * outAddrSize);
138 
139 void Bonjour_initialise (BONJOUR_CONFIG * z_config);
140 ServiceRecordSet * Bonjour_register_service (mDNS * z_m, int z_id, char * z_service, int z_port);
141 mDNS * Bonjour_initialise_mnds_core (void);
142 void Bonjour_reconfigure (int z_newAddr);
143 void Bonjour_reconfigure_service (int z_id, int z_arg1, char * z_arg2);
144 
145 #ifdef __cplusplus
146  }
147 #endif
148 
149 #endif /* __MDNS_VXWORKS__ */
Definition: mDNSVxWorks.h:60
Definition: mDNSEmbeddedAPI.h:1394
Definition: mDNSVxWorks.h:126
Definition: mDNSVxWorks.h:74
Definition: mDNSVxWorks.h:49
Definition: mDNSEmbeddedAPI.h:1780
Definition: mDNSVxWorks.c:135
Definition: mDNSEmbeddedAPI.h:265
Definition: mDNSVxWorks.h:104
Definition: mDNSEmbeddedAPI.h:300
Definition: mDNSVxWorks.h:92