Mac OS 9
OpenTransportProviders.h
Go to the documentation of this file.
1 
21 #ifndef __OPENTRANSPORTPROVIDERS__
22 #define __OPENTRANSPORTPROVIDERS__
23 
24 #ifndef __OPENTRANSPORT__
25 #include <OpenTransport.h>
26 #endif
27 
28 #if PRAGMA_ONCE
29 #pragma once
30 #endif
31 
32 #ifdef __cplusplus
33 extern "C"
34 {
35 #endif
36 
37 #if PRAGMA_IMPORT
38 #pragma import on
39 #endif
40 
41 #if PRAGMA_STRUCT_ALIGN
42 #pragma options align = mac68k
43 #elif PRAGMA_STRUCT_PACKPUSH
44 #pragma pack(push, 2)
45 #elif PRAGMA_STRUCT_PACK
46 #pragma pack(2)
47 #endif
48 
49 #if defined(__MWERKS__) && TARGET_CPU_68K
50 #pragma push
51 #pragma pointers_in_D0
52 #endif
53 
58  typedef UInt16 InetPort;
59  typedef UInt32 InetHost;
61 #define AF_INET 2
62  enum
63  {
64  AF_DNS = 42
65  };
66 
72  enum
73  {
74  kOTAnyInetAddress = 0
75  };
76 
84 #ifdef __cplusplus
85  typedef class TInternetServices *InetSvcRef;
86 #else
87 typedef void *InetSvcRef;
88 #endif
89 #define kDefaultInternetServicesPath ((OTConfigurationRef)-3L)
92 #define kInetVersion "3.1.1"
93 #define kInetPrefix "ot:inet$"
94 
97 #define kDNRName "dnr"
98 #define kTCPName "tcp"
99 #define kUDPName "udp"
100 #define kRawIPName "rawip"
101 
106  enum
107  {
108  INET_IP = 0x00,
109  INET_TCP = 0x06,
110  INET_UDP = 0x11
111  };
112 
115  enum
116  {
117  TCP_NODELAY = 0x01,
118  TCP_MAXSEG = 0x02,
119  TCP_NOTIFY_THRESHOLD = 0x10, /*** not a real XTI option */
120  TCP_ABORT_THRESHOLD = 0x11, /*** not a real XTI option */
121  TCP_CONN_NOTIFY_THRESHOLD = 0x12, /*** not a real XTI option */
122  TCP_CONN_ABORT_THRESHOLD = 0x13, /*** not a real XTI option */
123  TCP_OOBINLINE = 0x14, /*** not a real XTI option */
124  TCP_URGENT_PTR_TYPE = 0x15, /*** not a real XTI option */
125  TCP_KEEPALIVE = 0x0008
126  };
127 
128  enum
129  {
130  T_GARBAGE = 2
131  };
132 
135  enum
136  {
137  UDP_CHECKSUM = 0x0600,
138  UDP_RX_ICMP = 0x02
139  };
140 
142  enum
143  {
144  kIP_OPTIONS = 0x01,
145  kIP_TOS = 0x02,
146  kIP_TTL = 0x03,
147  kIP_REUSEADDR = 0x04,
148  kIP_DONTROUTE = 0x10,
149  kIP_BROADCAST = 0x20,
150  kIP_REUSEPORT = 0x0200,
151  kIP_HDRINCL = 0x1002,
152  kIP_RCVOPTS = 0x1005,
153  kIP_RCVDSTADDR = 0x1007,
154  kIP_MULTICAST_IF = 0x1010,
155  kIP_MULTICAST_TTL = 0x1011,
160  kIP_RCVIFADDR = 0x1016
161  };
162 
163  enum
164  {
165  IP_OPTIONS = kIP_OPTIONS,
166  IP_TOS = kIP_TOS,
167  IP_TTL = kIP_TTL,
168  IP_REUSEADDR = kIP_REUSEADDR,
169  IP_DONTROUTE = kIP_DONTROUTE,
170  IP_BROADCAST = kIP_BROADCAST,
171  IP_REUSEPORT = kIP_REUSEPORT,
172  IP_HDRINCL = kIP_HDRINCL,
173  IP_RCVOPTS = kIP_RCVOPTS,
174  IP_RCVDSTADDR = kIP_RCVDSTADDR,
175  IP_MULTICAST_IF = kIP_MULTICAST_IF,
183  };
184 
185  enum
186  {
187  DVMRP_INIT = 100,
188  DVMRP_DONE = 101,
189  DVMRP_ADD_VIF = 102,
190  DVMRP_DEL_VIF = 103,
191  DVMRP_ADD_LGRP = 104,
192  DVMRP_DEL_LGRP = 105,
193  DVMRP_ADD_MRT = 106,
194  DVMRP_DEL_MRT = 107
195  };
196 
199  enum
200  {
201  T_ROUTINE = 0,
202  T_PRIORITY = 1,
203  T_IMMEDIATE = 2,
204  T_FLASH = 3,
205  T_OVERRIDEFLASH = 4,
206  T_CRITIC_ECP = 5,
207  T_INETCONTROL = 6,
208  T_NETCONTROL = 7
209  };
210 
213  enum
214  {
215  T_NOTOS = 0x00,
216  T_LDELAY = (1 << 4),
217  T_HITHRPT = (1 << 3),
218  T_HIREL = (1 << 2)
219  };
220 
221 #define SET_TOS(prec, tos) (((0x7 & (prec)) << 5) | (0x1c & (tos)))
225  {
226  InetHost multicastGroupAddress;
227  InetHost interfaceAddress;
228  };
229  typedef struct TIPAddMulticast TIPAddMulticast;
231  enum
232  {
233  T_DNRSTRINGTOADDRCOMPLETE = kPRIVATEEVENT + 1,
234  T_DNRADDRTONAMECOMPLETE = kPRIVATEEVENT + 2,
235  T_DNRSYSINFOCOMPLETE = kPRIVATEEVENT + 3,
236  T_DNRMAILEXCHANGECOMPLETE = kPRIVATEEVENT + 4,
237  T_DNRQUERYCOMPLETE = kPRIVATEEVENT + 5
238  };
239 
242  struct InetAddress
243  {
244  OTAddressType fAddressType;
246  InetHost fHost;
247  UInt8 fUnused[8];
248  };
249  typedef struct InetAddress InetAddress;
251  enum
252  {
253  kMaxHostAddrs = 10,
254  kMaxSysStringLen = 32,
255  kMaxHostNameLen = 255
256  };
257 
258  typedef char InetDomainName[256];
260  {
261  InetDomainName name;
262  InetHost addrs[10];
263  };
264  typedef struct InetHostInfo InetHostInfo;
265  struct InetSysInfo
266  {
267  char cpuType[32];
268  char osType[32];
269  };
270  typedef struct InetSysInfo InetSysInfo;
272  {
273  UInt16 preference;
274  InetDomainName exchange;
275  };
276  typedef struct InetMailExchange InetMailExchange;
278  {
279  UInt16 qType;
280  UInt16 qClass;
281  UInt32 ttl;
282  InetDomainName name;
283  UInt16 responseType;
284  UInt16 resourceLen;
285  char resourceData[4];
286  };
287  typedef struct DNSQueryInfo DNSQueryInfo;
300  struct DNSAddress
301  {
302  OTAddressType fAddressType;
303  InetDomainName fName;
304  };
305  typedef struct DNSAddress DNSAddress;
307  enum
308  {
309  kDefaultInetInterface = -1
310  };
311 
312  enum
313  {
314  kInetInterfaceInfoVersion = 3
315  };
316 
318  {
319  InetHost fAddress;
320  InetHost fNetmask;
321  InetHost fBroadcastAddr;
322  InetHost fDefaultGatewayAddr;
323  InetHost fDNSAddr;
324  UInt16 fVersion;
325  UInt16 fHWAddrLen;
326  UInt8 *fHWAddr;
327  UInt32 fIfMTU;
328  UInt8 *fReservedPtrs[2];
329  InetDomainName fDomainName;
330  UInt32 fIPSecondaryCount;
331  UInt8 fReserved[252];
332  };
333  typedef struct InetInterfaceInfo InetInterfaceInfo;
335  enum
336  {
337  kAllDHCPOptions = -1,
338  kDHCPLongOption = 126,
339  kDHCPLongOptionReq = 127
340  };
341 
343  {
344  UInt8 fOptionTag;
345  UInt8 fOptionLen;
346  UInt8 fOptionValue;
347  };
348  typedef struct InetDHCPOption InetDHCPOption;
359  void
360  OTInitInetAddress(InetAddress *addr, InetPort port, InetHost host);
361 
370  OTByteCount
371  OTInitDNSAddress(DNSAddress *addr, char *str);
372 
381  OSStatus
382  OTInetStringToHost(const char *str, InetHost *host);
383 
392  void
393  OTInetHostToString(InetHost host, char *str);
394 
403  OSStatus
405 
414  OSStatus
415  OTInetGetSecondaryAddresses(InetHost *addr, UInt32 *count, SInt32 val);
416 
417 #if CALL_NOT_IN_CARBON
426  OSStatus
427  OTInetGetDHCPConfigInfo(InetDHCPOption *buf, UInt32 bufSize, SInt32 index,
428  SInt32 opt);
429 
432 #endif
434 #if !OTKERNEL
449  InetSvcRef
451  OSStatus *err,
452  OTClientContextPtr clientContext);
453 
462  OSStatus
464  OTNotifyUPP upp, void *contextPtr,
465  OTClientContextPtr clientContext);
466 
467 #if CALL_NOT_IN_CARBON
476  InetSvcRef
478  OSStatus *err);
479 
488  OSStatus
490  OTNotifyUPP proc, void *contextPtr);
491 
492 #endif
494 #if OTCARBONAPPLICATION
496 #define OTOpenInternetServices(cfig, oflags, err) \
497  OTOpenInternetServicesInContext(cfig, oflags, err, NULL)
498 #define OTAsyncOpenInternetServices(cfig, oflags, proc, contextPtr) \
499  OTAsyncOpenInternetServicesInContext(cfig, oflags, proc, contextPtr, NULL)
500 #endif
510  OSStatus
512 
521  OSStatus
522  OTInetAddressToName(InetSvcRef ref, InetHost addr, InetDomainName name);
523 
532  OSStatus
533  OTInetSysInfo(InetSvcRef ref, char *name, InetSysInfo *sysinfo);
534 
543  OSStatus
544  OTInetMailExchange(InetSvcRef ref, char *name, UInt16 *num,
545  InetMailExchange *mx);
546 
555  OSStatus
556  OTInetQuery(InetSvcRef ref, char *name, UInt16 qClass, UInt16 qType, char *buf,
557  OTByteCount buflen, void **argv, OTByteCount argvlen,
558  OTFlags flags);
559 
560 #ifdef __cplusplus
561 } // Terminate C definitions
562 
563 class TInternetServices : public TProvider
564 {
565 public:
566  OSStatus StringToAddress(char *name, InetHostInfo *hinfo)
567  {
568  return OTInetStringToAddress(this, name, hinfo);
569  }
570 
571  OSStatus AddressToName(InetHost addr, InetDomainName name)
572  {
573  return OTInetAddressToName(this, addr, name);
574  }
575 
576  OSStatus SysInfo(char *name, InetSysInfo *sysinfo)
577  {
578  return OTInetSysInfo(this, name, sysinfo);
579  }
580 
581  OSStatus MailExchange(char *name, UInt16 *num, InetMailExchange *mx)
582  {
583  return OTInetMailExchange(this, name, num, mx);
584  }
585 
586  OSStatus Query(char *name, UInt16 qClass, UInt16 qType, char *buf,
587  OTByteCount buflen, void **argv, OTByteCount argvlen,
588  OTFlags flags)
589  {
590  return OTInetQuery(this, name, qClass, qType, buf, buflen, argv, argvlen,
591  flags);
592  }
593 };
594 
595 extern "C"
596 {
597 #endif
598 #endif
603 #define kATalkVersion "1.1"
604 #define kATalkPrefix "ot:atlk$"
605 #define kATBinderID "ot:atbd$"
606 
607  /********************************************************************************
608  ** Module definitions
609  ********************************************************************************/
612  enum
613  {
614  ATK_DDP = FOUR_CHAR_CODE('DDP '),
615  ATK_AARP = FOUR_CHAR_CODE('AARP'),
616  ATK_ATP = FOUR_CHAR_CODE('ATP '),
617  ATK_ADSP = FOUR_CHAR_CODE('ADSP'),
618  ATK_ASP = FOUR_CHAR_CODE('ASP '),
619  ATK_PAP = FOUR_CHAR_CODE('PAP '),
620  ATK_NBP = FOUR_CHAR_CODE('NBP '),
621  ATK_ZIP = FOUR_CHAR_CODE('ZIP ')
622  };
623 
626 #define kDDPName "ddp"
627 #define kATPName "atp"
628 #define kADSPName "adsp"
629 #define kASPName "asp"
630 #define kPAPName "pap"
631 #define kNBPName "nbp"
632 #define kZIPName "zip"
633 #define kLTalkName "ltlk"
634 #define kLTalkAName "ltlkA"
635 #define kLTalkBName "ltlkB"
636 
645  enum
646  {
647  DDP_OPT_CHECKSUM = 0x0600,
648  DDP_OPT_SRCADDR =
649  0x2101,
650  ATP_OPT_REPLYCNT = 0x2110,
652  ATP_OPT_DATALEN = 0x2111,
655  0x2112,
658  0x2113,
660  PAP_OPT_OPENRETRY = 0x2120
662  };
663 
672  enum
673  {
674  kAppleTalkEvent = kPROTOCOLEVENT | 0x00010000,
675  T_GETMYZONECOMPLETE = kAppleTalkEvent + 1,
676  T_GETLOCALZONESCOMPLETE = kAppleTalkEvent + 2,
677  T_GETZONELISTCOMPLETE = kAppleTalkEvent + 3,
678  T_GETATALKINFOCOMPLETE = kAppleTalkEvent + 4,
679  T_ATALKROUTERDOWNEVENT =
680  kAppleTalkEvent +
681  51,
685  kAppleTalkEvent + 52,
689  kAppleTalkEvent + 53,
692  kAppleTalkEvent + 54,
695  kAppleTalkEvent +
696  55,
699  kAppleTalkEvent +
700  56
702  };
703 
704  enum
705  {
706  kAllATalkRoutersDown = 0,
710  -2L
712  };
713 
714  enum
715  {
716  kARARouterOnline =
717  -1L,
719  0,
721  -2L
722  };
723 
724 #define IsAppleTalkEvent(x) ((x) & 0xffff0000) == kAppleTalkEvent)
727  enum
728  {
729  ATALK_IOC_FULLSELFSEND =
730  ((MIOC_ATALK << 8) | 47),
732  ADSP_IOC_FORWARDRESET = ((MIOC_ATALK << 8) | 60)
733  };
734 
739  enum
740  {
741  kECHO_TSDU = 585
742  };
743 
746  enum
747  {
748  kNBPMaxNameLength = 32,
749  kNBPMaxTypeLength = 32,
750  kNBPMaxZoneLength = 32,
751  kNBPSlushLength = 9,
753  (kNBPMaxNameLength + kNBPMaxTypeLength + kNBPMaxZoneLength + 3),
754  kNBPEntityBufferSize = (kNBPMaxNameLength + kNBPMaxTypeLength +
755  kNBPMaxZoneLength + kNBPSlushLength),
756  kNBPWildCard = 0x3D,
758  kNBPDefaultZone = 0x2A
759  };
760 
763  enum
764  {
765  kZIPMaxZoneLength = kNBPMaxZoneLength
766  };
767 
768  enum
769  {
770  kDDPAddressLength = 8,
772  kNBPAddressLength = kNBPEntityBufferSize,
773  kAppleTalkAddressLength = kDDPAddressLength + kNBPEntityBufferSize
774  };
775 
776 #define OTCopyDDPAddress(addr, dest) \
777  { \
778  ((UInt32 *)(dest))[0] = ((UInt32 *)(addr))[0]; \
779  ((UInt32 *)(dest))[1] = ((UInt32 *)(addr))[1]; \
780  }
781 
782 /********************************************************************************
783 ** CLASS TAppleTalkServices
784 ********************************************************************************/
785 #if !OTKERNEL
792 #ifdef __cplusplus
793  typedef class TAppleTalkServices *ATSvcRef;
794 #else
795  typedef void *ATSvcRef;
796 #endif
797 #define kDefaultAppleTalkServicesPath ((OTConfigurationRef)-3L)
812  OSStatus
814  OTOpenFlags flags, OTNotifyUPP proc,
815  void *contextPtr,
816  OTClientContextPtr clientContext);
817 
826  ATSvcRef
828  OSStatus *err,
829  OTClientContextPtr clientContext);
830 
831 #if CALL_NOT_IN_CARBON
840  OSStatus
842  OTNotifyUPP proc, void *contextPtr);
843 
852  ATSvcRef
854  OSStatus *err);
855 
856 #endif
858 #if OTCARBONAPPLICATION
860 #define OTOpenAppleTalkServices(cfig, oflags, err) \
861  OTOpenAppleTalkServicesInContext(cfig, oflags, err, NULL)
862 #define OTAsyncOpenAppleTalkServices(cfig, oflags, proc, contextPtr) \
863  OTAsyncOpenAppleTalkServicesInContext(cfig, oflags, proc, contextPtr, NULL)
864 #endif
875  OSStatus
877 
890  OSStatus
892 
902  OSStatus
904 
915  OSStatus
917 
918 #ifdef __cplusplus
919 } // Terminate C definitions
920 
921 class TAppleTalkServices : public TProvider
922 {
923 public:
924  OSStatus GetMyZone(TNetbuf *zone) { return OTATalkGetMyZone(this, zone); }
925  OSStatus GetLocalZones(TNetbuf *zones)
926  {
927  return OTATalkGetLocalZones(this, zones);
928  }
929  OSStatus GetZoneList(TNetbuf *zones)
930  {
931  return OTATalkGetZoneList(this, zones);
932  }
933  OSStatus GetInfo(TNetbuf *info) { return OTATalkGetInfo(this, info); }
934 };
935 
936 extern "C"
937 {
938 #endif
939 #endif
956  enum
957  {
958  AF_ATALK_FAMILY = 0x0100,
959  AF_ATALK_DDP = 0x0100,
960  AF_ATALK_DDPNBP = AF_ATALK_FAMILY + 1,
961  AF_ATALK_NBP = AF_ATALK_FAMILY + 2,
962  AF_ATALK_MNODE = AF_ATALK_FAMILY + 3
963  };
964 
965  struct NBPEntity
966  {
967  UInt8 fEntity[99];
968  };
969  typedef struct NBPEntity NBPEntity;
970  struct DDPAddress
971  {
972  OTAddressType fAddressType;
973  UInt16 fNetwork;
974  UInt8 fNodeID;
975  UInt8 fSocket;
976  UInt8 fDDPType;
977  UInt8 fPad;
978 
979 #ifdef __cplusplus
980  // C++ inline methods on this structure.
981 
982  void Init(const DDPAddress &);
983  void Init(UInt16 net, UInt8 node, UInt8 socket);
984  void Init(UInt16 net, UInt8 node, UInt8 socket, UInt8 type);
985 
986  void SetSocket(UInt8);
987  void SetType(UInt8);
988  void SetNode(UInt8);
989  void SetNetwork(UInt16);
990 
991  OTByteCount GetAddressLength() const;
992  OTAddressType GetAddressType() const;
993  UInt8 GetSocket() const;
994  UInt8 GetType() const;
995  UInt8 GetNode() const;
996  UInt16 GetNetwork() const;
997 
998  Boolean operator==(const DDPAddress &) const;
999  Boolean operator!=(const DDPAddress &) const;
1000  void operator=(const DDPAddress &);
1001 #endif
1002  };
1003  typedef struct DDPAddress DDPAddress;
1004  struct NBPAddress
1005  {
1006  OTAddressType fAddressType;
1007  UInt8 fNBPNameBuffer[105];
1008 
1009 #ifdef __cplusplus
1010  // C++ inline methods on this structure.
1011 
1012  OTByteCount Init();
1013  OTByteCount Init(const NBPEntity &);
1014  OTByteCount Init(const char *);
1015  OTByteCount Init(const char *, OTByteCount len);
1016  Boolean ExtractEntity(NBPEntity &, OTByteCount len);
1017 
1018  OTAddressType GetAddressType() const;
1019 #endif
1020  };
1021  typedef struct NBPAddress NBPAddress;
1023  {
1024  OTAddressType fAddressType;
1025  UInt16 fNetwork;
1026  UInt8 fNodeID;
1027  UInt8 fSocket;
1028  UInt8 fDDPType;
1029  UInt8 fPad;
1030  UInt8 fNBPNameBuffer[105];
1031 
1032 #ifdef __cplusplus
1033  // C++ inline methods on this structure.
1034 
1035  void Init(const DDPAddress &);
1036  void Init(UInt16 net, UInt8 node, UInt8 socket);
1037  void Init(UInt16 net, UInt8 node, UInt8 socket, UInt8 type);
1038 
1039  void SetSocket(UInt8);
1040  void SetType(UInt8);
1041  void SetNode(UInt8);
1042  void SetNetwork(UInt16);
1043 
1044  OTAddressType GetAddressType() const;
1045  UInt8 GetSocket() const;
1046  UInt8 GetType() const;
1047  UInt8 GetNode() const;
1048  UInt16 GetNetwork() const;
1049 
1050  Boolean ExtractEntity(NBPEntity &, OTByteCount len);
1051  OTByteCount SetNBPEntity(const NBPEntity &);
1052  OTByteCount SetNBPEntity(const char *);
1053  OTByteCount SetNBPEntity(const char *, OTByteCount len);
1054 
1055  Boolean operator==(const DDPAddress &) const;
1056 #endif
1057  };
1058  typedef struct DDPNBPAddress DDPNBPAddress;
1070  void
1071  OTInitDDPAddress(DDPAddress *addr, UInt16 net, UInt8 node, UInt8 socket,
1072  UInt8 ddpType);
1073 
1082  OTByteCount
1083  OTInitNBPAddress(NBPAddress *addr, const char *name);
1084 
1093  OTByteCount
1094  OTInitDDPNBPAddress(DDPNBPAddress *addr, const char *name, UInt16 net,
1095  UInt8 node, UInt8 socket, UInt8 ddpType);
1096 
1106  Boolean
1107  OTCompareDDPAddresses(const DDPAddress *addr1, const DDPAddress *addr2);
1108 
1118  void
1120 
1130  OTByteCount
1132 
1142  OTByteCount
1143  OTSetAddressFromNBPEntity(UInt8 *nameBuf, const NBPEntity *entity);
1144 
1154  OTByteCount
1155  OTSetAddressFromNBPString(UInt8 *addrBuf, const char *name, SInt32 len);
1156 
1169  Boolean
1170  OTSetNBPEntityFromAddress(NBPEntity *entity, const UInt8 *addrBuf,
1171  OTByteCount len);
1172 
1182  Boolean
1183  OTSetNBPName(NBPEntity *entity, const char *name);
1184 
1193  Boolean
1194  OTSetNBPType(NBPEntity *entity, const char *typeVal);
1195 
1204  Boolean
1205  OTSetNBPZone(NBPEntity *entity, const char *zone);
1206 
1216  void
1217  OTExtractNBPName(const NBPEntity *entity, char *name);
1218 
1227  void
1228  OTExtractNBPType(const NBPEntity *entity, char *typeVal);
1229 
1238  void
1239  OTExtractNBPZone(const NBPEntity *entity, char *zone);
1240 
1241 #ifdef __cplusplus
1242 
1243  // Inline methods for DDPAddress
1244 
1245  inline void DDPAddress::operator=(const DDPAddress &addr)
1246  {
1247  *(UInt32 *)&fAddressType = *(UInt32 *)&addr.fAddressType;
1248  *(UInt32 *)&fNodeID = *(UInt32 *)&addr.fNodeID;
1249  }
1250 
1251  inline Boolean DDPAddress::operator==(const DDPAddress &addr) const
1252  {
1253  return OTCompareDDPAddresses(&addr, this);
1254  }
1255 
1256  inline Boolean DDPAddress::operator!=(const DDPAddress &addr) const
1257  {
1258  return !OTCompareDDPAddresses(&addr, this);
1259  }
1260 
1261  inline void DDPAddress::SetSocket(UInt8 socket) { fSocket = socket; }
1262 
1263  inline void DDPAddress::SetNode(UInt8 node) { fNodeID = node; }
1264 
1265  inline void DDPAddress::SetType(UInt8 type) { fDDPType = type; }
1266 
1267  inline void DDPAddress::SetNetwork(UInt16 net) { fNetwork = net; }
1268 
1269  inline OTByteCount DDPAddress::GetAddressLength() const
1270  {
1271  return kDDPAddressLength;
1272  }
1273 
1274  inline OTAddressType DDPAddress::GetAddressType() const { return fAddressType; }
1275 
1276  inline UInt8 DDPAddress::GetSocket() const { return fSocket; }
1277 
1278  inline UInt8 DDPAddress::GetNode() const { return fNodeID; }
1279 
1280  inline UInt8 DDPAddress::GetType() const { return fDDPType; }
1281 
1282  inline UInt16 DDPAddress::GetNetwork() const { return fNetwork; }
1283 
1284  inline void DDPAddress::Init(UInt16 net, UInt8 node, UInt8 socket)
1285  {
1286  fAddressType = AF_ATALK_DDP;
1287  SetNetwork(net);
1288  SetNode(node);
1289  SetSocket(socket);
1290  SetType(0);
1291  }
1292 
1293  inline void DDPAddress::Init(UInt16 net, UInt8 node, UInt8 socket, UInt8 type)
1294  {
1295  fAddressType = AF_ATALK_DDP;
1296  SetNetwork(net);
1297  SetNode(node);
1298  SetSocket(socket);
1299  SetType(type);
1300  }
1301 
1302  inline void DDPAddress::Init(const DDPAddress &addr)
1303  {
1304  *(UInt32 *)&fAddressType = *(UInt32 *)&addr.fAddressType;
1305  *(UInt32 *)&fNodeID = *(UInt32 *)&addr.fNodeID;
1306  }
1307 
1308  // Inline methods for NBPAddress
1309 
1310  inline OTByteCount NBPAddress::Init()
1311  {
1312  fAddressType = AF_ATALK_NBP;
1313  return sizeof(OTAddressType);
1314  }
1315 
1316  inline OTByteCount NBPAddress::Init(const NBPEntity &addr)
1317  {
1318  fAddressType = AF_ATALK_NBP;
1319  return sizeof(OTAddressType) +
1321  }
1322 
1323  inline OTByteCount NBPAddress::Init(const char *name)
1324  {
1325  fAddressType = AF_ATALK_NBP;
1326  return sizeof(OTAddressType) +
1328  }
1329 
1330  inline OTByteCount NBPAddress::Init(const char *name, OTByteCount len)
1331  {
1332  fAddressType = AF_ATALK_NBP;
1333  return sizeof(OTAddressType) +
1334  OTSetAddressFromNBPString(fNBPNameBuffer, name, (SInt32)len);
1335  }
1336 
1337  inline Boolean NBPAddress::ExtractEntity(NBPEntity &entity, OTByteCount len)
1338  {
1339  return OTSetNBPEntityFromAddress(&entity, fNBPNameBuffer, len);
1340  }
1341 
1342  inline OTAddressType NBPAddress::GetAddressType() const { return fAddressType; }
1343 
1344  // Inline methods for DDPNBPAddress
1345 
1346  inline Boolean DDPNBPAddress::operator==(const DDPAddress &addr) const
1347  {
1348  return OTCompareDDPAddresses((const DDPAddress *)this, &addr);
1349  }
1350 
1351  inline void DDPNBPAddress::SetSocket(UInt8 socket) { fSocket = socket; }
1352 
1353  inline void DDPNBPAddress::SetNode(UInt8 node) { fNodeID = node; }
1354 
1355  inline void DDPNBPAddress::SetType(UInt8 type) { fDDPType = type; }
1356 
1357  inline void DDPNBPAddress::SetNetwork(UInt16 net) { fNetwork = net; }
1358 
1359  inline OTAddressType DDPNBPAddress::GetAddressType() const
1360  {
1361  return fAddressType;
1362  }
1363 
1364  inline UInt8 DDPNBPAddress::GetSocket() const { return fSocket; }
1365 
1366  inline UInt8 DDPNBPAddress::GetNode() const { return fNodeID; }
1367 
1368  inline UInt8 DDPNBPAddress::GetType() const { return fDDPType; }
1369 
1370  inline UInt16 DDPNBPAddress::GetNetwork() const { return fNetwork; }
1371 
1372  inline void DDPNBPAddress::Init(UInt16 net, UInt8 node, UInt8 socket)
1373  {
1374  fAddressType = AF_ATALK_DDPNBP;
1375  SetNetwork(net);
1376  SetNode(node);
1377  SetSocket(socket);
1378  SetType(0);
1379  }
1380 
1381  inline void DDPNBPAddress::Init(UInt16 net, UInt8 node, UInt8 socket,
1382  UInt8 type)
1383  {
1384  fAddressType = AF_ATALK_DDPNBP;
1385  SetNetwork(net);
1386  SetNode(node);
1387  SetSocket(socket);
1388  SetType(type);
1389  }
1390 
1391  inline void DDPNBPAddress::Init(const DDPAddress &addr)
1392  {
1393  fAddressType = AF_ATALK_DDPNBP;
1394  SetNetwork(addr.GetNetwork());
1395  SetNode(addr.GetNode());
1396  SetSocket(addr.GetSocket());
1397  SetType(addr.GetType());
1398  fNBPNameBuffer[0] = 0;
1399  }
1400 
1401  inline OTByteCount DDPNBPAddress::SetNBPEntity(const NBPEntity &entity)
1402  {
1403  return OTSetAddressFromNBPEntity(fNBPNameBuffer, &entity) + kDDPAddressLength;
1404  }
1405 
1406  inline OTByteCount DDPNBPAddress::SetNBPEntity(const char *name)
1407  {
1408  return OTSetAddressFromNBPString(fNBPNameBuffer, name, -1) +
1409  kDDPAddressLength;
1410  }
1411 
1412  inline OTByteCount DDPNBPAddress::SetNBPEntity(const char *name,
1413  OTByteCount len)
1414  {
1415  return OTSetAddressFromNBPString(fNBPNameBuffer, name, (SInt32)len) +
1416  kDDPAddressLength;
1417  }
1418 
1419  inline Boolean DDPNBPAddress::ExtractEntity(NBPEntity &entity,
1420  OTByteCount len)
1421  {
1422  return OTSetNBPEntityFromAddress(&entity, fNBPNameBuffer, len);
1423  }
1424 
1425 #endif
1429  {
1430  DDPAddress fOurAddress;
1432  UInt16 fCableRange[2];
1433  UInt16 fFlags;
1434  };
1435  typedef struct AppleTalkInfo AppleTalkInfo;
1437  enum
1438  {
1439  kATalkInfoIsExtended = 0x0001,
1441  kATalkInfoOneZone = 0x0004
1442  };
1443 
1450  enum
1451  {
1452  kOTFramingEthernet = 0x01,
1453  kOTFramingEthernetIPX = 0x02,
1454  kOTFraming8023 = 0x04,
1455  kOTFraming8022 = 0x08
1456  };
1457 
1466  enum
1467  {
1468  kOTRawRcvOn = 0,
1469  kOTRawRcvOff = 1,
1470  kOTRawRcvOnWithTimeStamp = 2
1471  };
1472 
1473  enum
1474  {
1475  DL_PROMISC_OFF = 0
1476  };
1477 
1482  enum
1483  {
1484  kT8022ModuleID = 7100,
1485  kEnetModuleID = 7101,
1486  kTokenRingModuleID = 7102,
1487  kFDDIModuleID = 7103
1488  };
1489 
1492 #define kEnet8022Name "enet8022x"
1493 #define kEnetName "enet"
1494 #define kFastEnetName "fenet"
1495 #define kTokenRingName "tokn"
1496 #define kFDDIName "fddi"
1497 #define kIRTalkName "irtlk"
1498 #define kSMDSName "smds"
1499 #define kATMName "atm"
1500 #define kT8022Name "tpi8022x"
1501 #define kATMSNAPName "atmsnap"
1502 #define kFireWireName "firewire"
1503 #define kFibreChannelName "fibre"
1504 
1507  enum
1508  {
1509  AF_8022 = 8200
1510  };
1511 
1514  enum
1515  {
1516  LNK_ENET = FOUR_CHAR_CODE('ENET'),
1517  LNK_TOKN = FOUR_CHAR_CODE('TOKN'),
1518  LNK_FDDI = FOUR_CHAR_CODE('FDDI'),
1519  LNK_TPI = FOUR_CHAR_CODE('LTPI')
1520  };
1521 
1524  enum
1525  {
1526  OPT_ADDMCAST = 0x1000,
1527  OPT_DELMCAST = 0x1001,
1528  OPT_RCVPACKETTYPE = 0x1002,
1529  OPT_RCVDESTADDR = 0x1003,
1530  OPT_SETRAWMODE = 0x1004,
1531  OPT_SETPROMISCUOUS = 0x1005
1532  };
1533 
1534  typedef UInt32 OTPacketType;
1535  enum
1536  {
1537  kETypeStandard = 0,
1538  kETypeMulticast = 1,
1539  kETypeBroadcast = 2,
1540  kETRawPacketBit = (unsigned long)0x80000000,
1541  kETTimeStampBit = 0x40000000
1542  };
1543 
1546  enum
1547  {
1548  kMulticastLength = 6,
1550  k8022DLSAPLength = 2,
1552  kEnetAddressLength =
1553  k48BitAddrLength + k8022DLSAPLength,
1556  kSNAPSAP = 0x00AA,
1557  kIPXSAP = 0x00FF,
1558  kMax8022SAP = 0x00FE,
1559  k8022GlobalSAP = 0x00FF,
1560  kMinDIXSAP = 1501,
1561  kMaxDIXSAP = 0xFFFF
1562  };
1563 
1567  {
1568  OTAddressType fAddrFamily;
1569  UInt8 fHWAddr[6];
1570  UInt16 fSAP;
1571  UInt8 fSNAP[5];
1572  };
1573  typedef struct T8022Address T8022Address;
1574  enum
1575  {
1576  k8022BasicAddressLength =
1577  sizeof(OTAddressType) + k48BitAddrLength + sizeof(UInt16),
1578  k8022SNAPAddressLength = sizeof(OTAddressType) + k48BitAddrLength +
1579  sizeof(UInt16) + k8022SNAPLength
1580  };
1581 
1584 #define OTCompare48BitAddresses(p1, p2) \
1585  (*(const UInt32 *)((const UInt8 *)(p1)) == \
1586  *(const UInt32 *)((const UInt8 *)(p2)) && \
1587  *(const UInt16 *)(((const UInt8 *)(p1)) + 4) == \
1588  *(const UInt16 *)(((const UInt8 *)(p2)) + 4))
1589 
1590 #define OTCopy48BitAddress(p1, p2) \
1591  (*(UInt32 *)((UInt8 *)(p2)) = *(const UInt32 *)((const UInt8 *)(p1)), \
1592  *(UInt16 *)(((UInt8 *)(p2)) + 4) = \
1593  *(const UInt16 *)(((const UInt8 *)(p1)) + 4))
1594 
1595 #define OTClear48BitAddress(p1) \
1596  (*(UInt32 *)((UInt8 *)(p1)) = 0, *(UInt16 *)(((UInt8 *)(p1)) + 4) = 0)
1597 
1598 #define OTCompare8022SNAP(p1, p2) \
1599  (*(const UInt32 *)((const UInt8 *)(p1)) == \
1600  *(const UInt32 *)((const UInt8 *)(p2)) && \
1601  *(((const UInt8 *)(p1)) + 4) == *(((const UInt8 *)(p2)) + 4))
1602 
1603 #define OTCopy8022SNAP(p1, p2) \
1604  (*(UInt32 *)((UInt8 *)(p2)) = *(const UInt32 *)((const UInt8 *)(p1)), \
1605  *(((UInt8 *)(p2)) + 4) = *(((const UInt8 *)(p1)) + 4))
1606 
1607 #define OTIs48BitBroadcastAddress(p1) \
1608  (*(UInt32 *)((UInt8 *)(p1)) == 0xffffffff && \
1609  *(UInt16 *)(((UInt8 *)(p1)) + 4) == 0xffff)
1610 
1611 #define OTSet48BitBroadcastAddress(p1) \
1612  (*(UInt32 *)((UInt8 *)(p1)) = 0xffffffff, \
1613  *(UInt16 *)(((UInt8 *)(p1)) + 4) = 0xffff)
1614 
1615 #define OTIs48BitZeroAddress(p1) \
1616  (*(UInt32 *)((UInt8 *)(p1)) == 0 && *(UInt16 *)(((UInt8 *)(p1)) + 4) == 0)
1617 
1620  enum
1621  {
1622  kEnetPacketHeaderLength = (2 * k48BitAddrLength) + k8022DLSAPLength,
1623  kEnetTSDU = 1514,
1625  kFDDITSDU = 4458,
1627  k8022BasicHeaderLength =
1628  3,
1630  k8022SNAPHeaderLength = k8022SNAPLength + k8022BasicHeaderLength
1631  };
1632 
1633  /********************************************************************************
1634  ** Address Types recognized by the Enet DLPI
1635  ********************************************************************************/
1636  typedef UInt32 EAddrType;
1637  enum
1638  {
1639  keaStandardAddress = 0,
1640  keaMulticast = 1,
1641  keaBroadcast = 2,
1642  keaBadAddress = 3,
1643  keaRawPacketBit = (unsigned long)0x80000000,
1644  keaTimeStampBit = 0x40000000
1645  };
1646 
1650  {
1651  UInt8 fDestAddr[6];
1652  UInt8 fSourceAddr[6];
1653  UInt16 fProto;
1654  };
1655  typedef struct EnetPacketHeader EnetPacketHeader;
1657  {
1658  UInt8 fDSAP;
1659  UInt8 fSSAP;
1660  UInt8 fCtrl;
1661  };
1662  typedef struct T8022Header T8022Header;
1664  {
1665  UInt8 fDSAP;
1666  UInt8 fSSAP;
1667  UInt8 fCtrl;
1668  UInt8 fSNAP[5];
1669  };
1670  typedef struct T8022SNAPHeader T8022SNAPHeader;
1672  {
1673  EnetPacketHeader fEnetPart;
1674  T8022SNAPHeader f8022Part;
1675  };
1678  enum
1679  {
1680  kT8022HeaderLength = 3,
1681  kT8022SNAPHeaderLength = 3 + k8022SNAPLength,
1682  kT8022FullPacketHeaderLength =
1683  kEnetPacketHeaderLength + kT8022SNAPHeaderLength
1684  };
1685 
1692  enum
1693  {
1694  COM_SERIAL = FOUR_CHAR_CODE('SERL')
1695  };
1696 
1699 #define kSerialABVersion "1.1.1"
1700 
1703 #define kSerialABName "serialAB"
1704 #define kSerialName "serial"
1705 #define kSerialPortAName "serialA"
1706 #define kSerialPortBName "serialB"
1707 
1708  enum
1709  {
1710  kSerialABModuleID = 7200
1711  };
1712 
1713  enum
1714  {
1715  kOTSerialFramingAsync = 0x01,
1719  kOTSerialFramingPPP = 0x10
1721  };
1722 
1725  enum
1726  {
1727  I_SetSerialDTR = ((MIOC_SRL << 8) | 0),
1729  kOTSerialSetDTROn = 1,
1730  I_SetSerialBreak =
1731  ((MIOC_SRL << 8) | 1),
1735  kOTSerialSetBreakOn = (unsigned long)0xFFFFFFFF,
1736  kOTSerialSetBreakOff = 0,
1737  I_SetSerialXOffState =
1738  ((MIOC_SRL << 8) | 2),
1741  kOTSerialForceXOffFalse = 0,
1742  I_SetSerialXOn =
1743  ((MIOC_SRL << 8) | 3),
1746  kOTSerialSendXOnIfXOffTrue = 0,
1747  I_SetSerialXOff =
1748  ((MIOC_SRL << 8) | 4),
1751  kOTSerialSendXOffIfXOnTrue = 0
1752  };
1753 
1764  enum
1765  {
1766  SERIAL_OPT_BAUDRATE = 0x0100,
1780  0x0106,
1824  SERIAL_OPT_DUMMY = 0x010A
1825  };
1826 
1827  typedef UInt32 ParityOptionValues;
1828  enum
1829  {
1830  kOTSerialNoParity = 0,
1831  kOTSerialOddParity = 1,
1832  kOTSerialEvenParity = 2
1833  };
1834 
1835  enum
1836  {
1837  kOTSerialSwOverRunErr = 0x01,
1838  kOTSerialBreakOn = 0x08,
1839  kOTSerialParityErr = 0x10,
1840  kOTSerialOverrunErr = 0x20,
1841  kOTSerialFramingErr = 0x40,
1842  kOTSerialXOffSent = 0x00010000,
1843  kOTSerialDTRNegated = 0x00020000,
1844  kOTSerialCTLHold = 0x00040000,
1845  kOTSerialXOffHold = 0x00080000,
1846  kOTSerialOutputBreakOn = 0x01000000
1847  };
1848 
1849  enum
1850  {
1851  kOTSerialXOnOffInputHandshake =
1852  1,
1854  2,
1856  4,
1858  8
1859  };
1860 
1861 #ifdef __cplusplus
1862 
1863  inline UInt32 OTSerialHandshakeData(UInt16 type, UInt8 onChar, UInt8 offChar)
1864  {
1865  return (((UInt32)type) << 16) | (((UInt32)onChar) << 8) | offChar;
1866  }
1867 
1868 #else
1869 
1870 #define OTSerialHandshakeData(type, onChar, offChar) \
1871  ((((UInt32)type) << 16) | (((UInt32)onChar) << 8) | offChar)
1872 
1873 #endif
1874 
1875 #ifdef __cplusplus
1876 
1877  inline UInt32 OTSerialSetErrorCharacter(UInt8 rep)
1878  {
1879  return (UInt32)rep & 0x000000ff;
1880  }
1881 
1882  inline UInt32 OTSerialSetErrorCharacterWithAlternate(UInt8 rep,
1883  UInt8 alternate)
1884  {
1885  return (((rep & 0xff) | ((alternate & 0xff) << 8)) | 0x80000000L);
1886  }
1887 
1888 #else
1889 
1890 #define OTSerialSetErrorCharacter(rep) ((rep) & 0xff)
1891 
1892 #define OTSerialSetErrorCharacterWithAlternate(rep, alternate) \
1893  ((((rep) & 0xff) | (((alternate) & 0xff) << 8)) | 0x80000000L)
1894 
1895 #endif
1896 
1899  enum
1900  {
1901  kOTSerialDefaultBaudRate = 19200,
1902  kOTSerialDefaultDataBits = 8,
1903  kOTSerialDefaultStopBits = 10,
1904  kOTSerialDefaultParity = kOTSerialNoParity,
1905  kOTSerialDefaultHandshake = 0,
1906  kOTSerialDefaultOnChar = ('Q' & 0xFFFFFFBF),
1907  kOTSerialDefaultOffChar = ('S' & 0xFFFFFFBF),
1908  kOTSerialDefaultSndBufSize = 1024,
1909  kOTSerialDefaultRcvBufSize = 1024,
1910  kOTSerialDefaultSndLoWat = 96,
1911  kOTSerialDefaultRcvLoWat = 1,
1912  kOTSerialDefaultRcvTimeout = 10
1913  };
1914 
1921  enum
1922  {
1923  COM_ISDN = FOUR_CHAR_CODE('ISDN')
1924  };
1925 
1928 #define kISDNName "isdn"
1929  enum
1930  {
1931  kISDNModuleID = 7300
1932  };
1933 
1936  enum
1937  {
1938  kOTISDNFramingTransparentSupported = 0x0010,
1941  kOTISDNFramingV14ESupported = 0x0080
1942  };
1943 
1948  enum
1949  {
1950  kOTISDNUnallocatedNumber = 1,
1951  kOTISDNNoRouteToSpecifiedTransitNetwork = 2,
1952  kOTISDNNoRouteToDestination = 3,
1953  kOTISDNChannelUnacceptable = 6,
1954  kOTISDNNormal = 16,
1955  kOTISDNUserBusy = 17,
1956  kOTISDNNoUserResponding = 18,
1957  kOTISDNNoAnswerFromUser = 19,
1958  kOTISDNCallRejected = 21,
1959  kOTISDNNumberChanged = 22,
1960  kOTISDNNonSelectedUserClearing = 26,
1961  kOTISDNDestinationOutOfOrder = 27,
1962  kOTISDNInvalidNumberFormat = 28,
1963  kOTISDNFacilityRejected = 29,
1964  kOTISDNNormalUnspecified = 31,
1965  kOTISDNNoCircuitChannelAvailable = 34,
1966  kOTISDNNetworkOutOfOrder = 41,
1967  kOTISDNSwitchingEquipmentCongestion = 42,
1968  kOTISDNAccessInformationDiscarded = 43,
1969  kOTISDNRequestedCircuitChannelNotAvailable = 44,
1970  kOTISDNResourceUnavailableUnspecified = 45,
1971  kOTISDNQualityOfServiceUnvailable = 49,
1972  kOTISDNRequestedFacilityNotSubscribed = 50,
1973  kOTISDNBearerCapabilityNotAuthorized = 57,
1974  kOTISDNBearerCapabilityNotPresentlyAvailable = 58,
1975  kOTISDNCallRestricted = 59,
1976  kOTISDNServiceOrOptionNotAvilableUnspecified = 63,
1977  kOTISDNBearerCapabilityNotImplemented = 65,
1978  kOTISDNRequestedFacilityNotImplemented = 69,
1979  kOTISDNOnlyRestrictedDigitalBearer = 70,
1980  kOTISDNServiceOrOptionNotImplementedUnspecified = 79,
1981  kOTISDNCallIdentityNotUsed = 83,
1982  kOTISDNCallIdentityInUse = 84,
1983  kOTISDNNoCallSuspended = 85,
1984  kOTISDNCallIdentityCleared = 86,
1985  kOTISDNIncompatibleDestination = 88,
1986  kOTISDNInvalidTransitNetworkSelection = 91,
1987  kOTISDNInvalidMessageUnspecified = 95,
1988  kOTISDNMandatoryInformationElementIsMissing = 96,
1989  kOTISDNMessageTypeNonExistentOrNotImplemented = 97,
1990  kOTISDNInterworkingUnspecified = 127
1991  };
1992 
2007  enum
2008  {
2009  kAF_ISDN = 0x2000
2010  };
2011 
2012  enum
2013  {
2014  AF_ISDN = kAF_ISDN
2015  };
2016 
2017  enum
2018  {
2019  kOTISDNMaxPhoneSize = 32,
2020  kOTISDNMaxSubSize = 4
2021  };
2022 
2024  {
2025  OTAddressType fAddressType;
2026  UInt16 fPhoneLength;
2027  char fPhoneNumber[37];
2028  };
2029  typedef struct OTISDNAddress OTISDNAddress;
2033  enum
2034  {
2035  MIOC_ISDN = 'U'
2036  };
2037 
2038  enum
2039  {
2040  I_OTISDNAlerting =
2041  ((MIOC_ISDN << 8) | 100),
2042  I_OTISDNSuspend = ((MIOC_ISDN << 8) | 101),
2045  ((MIOC_ISDN << 8) | 102),
2047  ((MIOC_ISDN << 8) | 103),
2048  I_OTISDNResume = ((MIOC_ISDN << 8) | 104),
2051  ((MIOC_ISDN << 8) | 105),
2053  ((MIOC_ISDN << 8) | 106),
2055  ((MIOC_ISDN << 8) | 107)
2056  };
2057 
2060  enum
2061  {
2062  kOTISDNMaxUserDataSize = 32
2063  };
2064 
2067  enum
2068  {
2069  ISDN_OPT_COMMTYPE = 0x0200,
2070  ISDN_OPT_FRAMINGTYPE = 0x0201,
2071  ISDN_OPT_56KADAPTATION = 0x0202
2072  };
2073 
2076  enum
2077  {
2078  kOTISDNTelephoneALaw = 1,
2083  kOTISDNVideo56k = 42
2084  };
2085 
2088  enum
2089  {
2090  kOTISDNFramingTransparent = 0x0010,
2093  kOTISDNFramingV14E = 0x0080
2094  };
2095 
2098  enum
2099  {
2100  kOTISDNNot56KAdaptation = false,
2101  kOTISDN56KAdaptation = true
2102  };
2103 
2106  enum
2107  {
2108  kOTISDNDefaultCommType = kOTISDNDigital64k,
2109  kOTISDNDefaultFramingType = kOTISDNFramingHDLC,
2110  kOTISDNDefault56KAdaptation = kOTISDNNot56KAdaptation
2111  };
2112 
2113  /********************************************************************************
2114  * Constants for Open Transport-based Remote Access/PPP API
2115  ********************************************************************************/
2116 
2119 #define kPPPControlName "ppp"
2120 
2123  enum
2124  {
2125  COM_PPP = FOUR_CHAR_CODE('PPPC')
2126  };
2127 
2130  enum
2131  {
2132  kPPPMaxIDLength = 255,
2133  kPPPMaxPasswordLength = 255,
2134  kPPPMaxDTEAddressLength = 127,
2135  kPPPMaxCallInfoLength = 255
2136  };
2137 
2140  enum
2141  {
2142  kPPPStateInitial = 1,
2143  kPPPStateClosed = 2,
2144  kPPPStateClosing = 3,
2145  kPPPStateOpening = 4,
2146  kPPPStateOpened = 5
2147  };
2148 
2149  enum
2150  {
2151  kPPPConnectionStatusIdle = 1,
2152  kPPPConnectionStatusConnecting = 2,
2153  kPPPConnectionStatusConnected = 3,
2154  kPPPConnectionStatusDisconnecting = 4
2155  };
2156 
2157  enum
2158  {
2159  kPPPMinMRU = 0,
2160  kPPPMaxMRU = 4500
2161  };
2162 
2163  enum
2164  {
2165  kIPCPTCPHdrCompressionDisabled = 0,
2166  kIPCPTCPHdrCompressionEnabled = 1
2167  };
2168 
2169  enum
2170  {
2171  kPPPCompressionDisabled = 0x00000000,
2172  kPPPProtoCompression = 0x00000001,
2173  kPPPAddrCompression = 0x00000002
2174  };
2175 
2176  enum
2177  {
2178  kPPPNoOutAuthentication = 0,
2179  kPPPCHAPOrPAPOutAuthentication = 1
2180  };
2181 
2182  enum
2183  {
2184  kCCReminderTimerDisabled = 0,
2185  kCCIPIdleTimerDisabled = 0
2186  };
2187 
2188  enum
2189  {
2190  kPPPScriptTypeModem = 1,
2191  kPPPScriptTypeConnect = 2,
2192  kPPPMaxScriptSize = 32000
2193  };
2194 
2195  enum
2196  {
2197  kE164Address = 1,
2198  kPhoneAddress = 1,
2199  kCompoundPhoneAddress = 2,
2200  kX121Address = 3
2201  };
2202 
2203  enum
2204  {
2205  kPPPConnectionStatusDialogsFlag = 0x00000001,
2206  kPPPConnectionRemindersFlag = 0x00000002,
2207  kPPPConnectionFlashingIconFlag = 0x00000004,
2208  kPPPOutPasswordDialogsFlag = 0x00000008,
2209  kPPPAllAlertsDisabledFlag = 0x00000000,
2210  kPPPAllAlertsEnabledFlag = 0x0000000F
2211  };
2212 
2213  enum
2214  {
2215  kPPPAsyncMapCharsNone = 0x00000000,
2216  kPPPAsyncMapCharsXOnXOff = 0x000A0000,
2217  kPPPAsyncMapCharsAll = (unsigned long)0xFFFFFFFF
2218  };
2219 
2222  enum
2223  {
2224  IPCP_OPT_GETREMOTEPROTOADDR = 0x00007000,
2225  IPCP_OPT_GETLOCALPROTOADDR = 0x00007001,
2226  IPCP_OPT_TCPHDRCOMPRESSION = 0x00007002,
2227  LCP_OPT_PPPCOMPRESSION = 0x00007003,
2228  LCP_OPT_MRU = 0x00007004,
2229  LCP_OPT_RCACCMAP = 0x00007005,
2230  LCP_OPT_TXACCMAP = 0x00007006,
2231  SEC_OPT_OUTAUTHENTICATION = 0x00007007,
2232  SEC_OPT_ID = 0x00007008,
2233  SEC_OPT_PASSWORD = 0x00007009,
2234  CC_OPT_REMINDERTIMER = 0x00007010,
2235  CC_OPT_IPIDLETIMER = 0x00007011,
2236  CC_OPT_DTEADDRESSTYPE = 0x00007012,
2237  CC_OPT_DTEADDRESS = 0x00007013,
2238  CC_OPT_CALLINFO = 0x00007014,
2239  CC_OPT_GETMISCINFO = 0x00007015,
2240  PPP_OPT_GETCURRENTSTATE = 0x00007016,
2241  LCP_OPT_ECHO = 0x00007017,
2242  CC_OPT_SERIALPORTNAME = 0x00007200
2243  };
2244 
2247  enum
2248  {
2249  kPPPEvent = kPROTOCOLEVENT | 0x000F0000,
2250  kPPPConnectCompleteEvent = kPPPEvent + 1,
2251  kPPPSetScriptCompleteEvent = kPPPEvent + 2,
2252  kPPPDisconnectCompleteEvent = kPPPEvent + 3,
2253  kPPPDisconnectEvent = kPPPEvent + 4,
2254  kPPPIPCPUpEvent = kPPPEvent + 5,
2255  kPPPIPCPDownEvent = kPPPEvent + 6,
2256  kPPPLCPUpEvent = kPPPEvent + 7,
2257  kPPPLCPDownEvent = kPPPEvent + 8,
2258  kPPPLowerLayerUpEvent = kPPPEvent + 9,
2259  kPPPLowerLayerDownEvent = kPPPEvent + 10,
2260  kPPPAuthenticationStartedEvent = kPPPEvent + 11,
2261  kPPPAuthenticationFinishedEvent = kPPPEvent + 12,
2262  kPPPDCEInitStartedEvent = kPPPEvent + 13,
2263  kPPPDCEInitFinishedEvent = kPPPEvent + 14,
2264  kPPPDCECallStartedEvent = kPPPEvent + 15,
2265  kPPPDCECallFinishedEvent = kPPPEvent + 16
2266  };
2267 
2268 #if CALL_NOT_IN_CARBON
2269 
2274 #define kScriptName "Script"
2275 
2279 #define gestaltOpenTptModem 'otmo'
2280 #define gestaltOpenTptModemPresent 0
2281 
2282 #define gestaltOpenTptModemVersion 'otmv'
2283 #define kGestaltOpenTptModemVersion 0x01000080
2284 
2288 #define kModemNoError 0
2289 #define kModemOutOfMemory -14000
2290 #define kModemPreferencesMissing -14001
2291 #define kModemScriptMissing -14002
2292 
2295 #define kModemConfigFileCreator 'modm'
2296 #define kModemConfigFileType 'mdpf'
2297 #define kModemConfigVersion 0x00010000
2298 #define kModemConfigExportType 'mdex'
2299 #define kModemScriptType 'mlts'
2300 #define kModemScriptCreator 'slnk'
2304 #define kModemConfigTypeModem 'ccl '
2305 #define kModemSelectedConfigID 1
2306 #define kModemSelectedConfigType 'ccfg'
2307 #define kModemConfigNameType 'cnam'
2308 #define kModemConfigTypeLocks 'lkmd'
2309 #define kModemConfigFirstID 128
2313 #define kMaxScriptNameSize 64
2314 
2318 #define kDefaultModemPrefsFileName "\pModem Preferences"
2319 
2322  enum
2323  {
2324  kDialToneNormal = 0,
2325  kDialToneIgnore = 1,
2326  kDialToneManual = 2
2327  };
2328 
2331  typedef struct
2332  {
2333  UInt32 version;
2334  Boolean useModemScript;
2335  FSSpec modemScript;
2336  Boolean modemSpeakerOn;
2337  Boolean modemPulseDial;
2338  UInt32 modemDialToneMode;
2339  SInt8 lowerLayerName[kMaxProviderNameSize];
2340  } RAConfigModem;
2341 
2342 #endif
2344  /********************************************************************************
2345  * IOCTL constants for I_OTConnect, I_OTDisconnect and I_OTScript
2346  * are defined in OpenTransport.h
2347  ********************************************************************************/
2348 
2349  /********************************************************************************
2350  * PPPMRULimits
2351  ********************************************************************************/
2353  {
2354  UInt32 mruSize;
2356  UInt32 lowerMRULimit;
2357  };
2358  typedef struct PPPMRULimits PPPMRULimits;
2359 
2360  /********************************************************************************
2361  * CCMiscInfo
2362  ********************************************************************************/
2363  struct CCMiscInfo
2364  {
2365  UInt32 connectionStatus;
2366  UInt32 connectionTimeElapsed;
2367  UInt32 connectionTimeRemaining;
2368  UInt32 bytesTransmitted;
2369  UInt32 bytesReceived;
2370  UInt32 reserved;
2371  };
2372  typedef struct CCMiscInfo CCMiscInfo;
2373 
2374  /********************************************************************************
2375  * LCPEcho
2376  ********************************************************************************/
2379  struct LCPEcho
2380  {
2381  UInt32 retryCount;
2382  UInt32 retryPeriod;
2383  };
2384  typedef struct LCPEcho LCPEcho;
2385 
2386  /********************************************************************************
2387  * Bits used to tell kind of product
2388  ********************************************************************************/
2389  enum
2390  {
2391  kRAProductClientOnly = 2,
2392  kRAProductOnePortServer = 3,
2393  kRAProductManyPortServer = 4
2394  };
2395 
2396 #if defined(__MWERKS__) && TARGET_CPU_68K
2397 #pragma pop
2398 #endif
2399 
2400 #if PRAGMA_STRUCT_ALIGN
2401 #pragma options align = reset
2402 #elif PRAGMA_STRUCT_PACKPUSH
2403 #pragma pack(pop)
2404 #elif PRAGMA_STRUCT_PACK
2405 #pragma pack()
2406 #endif
2407 
2408 #ifdef PRAGMA_IMPORT_OFF
2409 #pragma import off
2410 #elif PRAGMA_IMPORT
2411 #pragma import reset
2412 #endif
2413 
2414 #ifdef __cplusplus
2415 }
2416 #endif
2417 
2418 #endif
OSErr GetLocalZones(XPPParmBlkPtr thePBptr, Boolean async)
Get AppleTalk zone names on the local network.
OSErr GetMyZone(XPPParmBlkPtr thePBptr, Boolean async)
Get AppleTalk zone name.
OSErr GetZoneList(XPPParmBlkPtr thePBptr, Boolean async)
Returns a list of all the zone names on the internet.
unsigned char Boolean
Definition: MacTypes.h:318
OTByteCount OTInitDDPNBPAddress(DDPNBPAddress *addr, const char *name, UInt16 net, UInt8 node, UInt8 socket, UInt8 ddpType)
@ kOTISDN56KAdaptation
Definition: OpenTransportProviders.h:2101
OSStatus OTInetAddressToName(InetSvcRef ref, InetHost addr, InetDomainName name)
@ k8022SNAPHeaderLength
Definition: OpenTransportProviders.h:1630
@ k8022SAPLength
Definition: OpenTransportProviders.h:1626
@ kFDDITSDU
Definition: OpenTransportProviders.h:1625
@ kTokenRingTSDU
Definition: OpenTransportProviders.h:1624
OSStatus OTInetMailExchange(InetSvcRef ref, char *name, UInt16 *num, InetMailExchange *mx)
@ CC_OPT_SERIALPORTNAME
Definition: OpenTransportProviders.h:2242
@ k8022SNAPLength
Definition: OpenTransportProviders.h:1551
@ k48BitAddrLength
Definition: OpenTransportProviders.h:1549
@ kIPXSAP
Definition: OpenTransportProviders.h:1557
@ kSNAPSAP
Definition: OpenTransportProviders.h:1556
OTByteCount OTSetAddressFromNBPEntity(UInt8 *nameBuf, const NBPEntity *entity)
ATSvcRef OTOpenAppleTalkServices(OTConfigurationRef cfig, OTOpenFlags flags, OSStatus *err)
OSStatus OTAsyncOpenAppleTalkServicesInContext(OTConfigurationRef cfig, OTOpenFlags flags, OTNotifyUPP proc, void *contextPtr, OTClientContextPtr clientContext)
OSStatus OTATalkGetLocalZones(ATSvcRef ref, TNetbuf *zones)
OSStatus OTATalkGetZoneList(ATSvcRef ref, TNetbuf *zones)
@ T_ATALKCABLERANGECHANGEDEVENT
Definition: OpenTransportProviders.h:698
@ T_ATALKCONNECTIVITYCHANGEDEVENT
Definition: OpenTransportProviders.h:691
@ T_ATALKZONENAMECHANGEDEVENT
Definition: OpenTransportProviders.h:688
@ T_ATALKROUTERUPEVENT
Definition: OpenTransportProviders.h:684
@ T_ATALKINTERNETAVAILABLEEVENT
Definition: OpenTransportProviders.h:694
void * InetSvcRef
Definition: OpenTransportProviders.h:87
Boolean OTSetNBPType(NBPEntity *entity, const char *typeVal)
InetSvcRef OTOpenInternetServices(OTConfigurationRef cfig, OTOpenFlags oflag, OSStatus *err)
Boolean OTSetNBPName(NBPEntity *entity, const char *name)
OSStatus OTInetGetInterfaceInfo(InetInterfaceInfo *info, SInt32 val)
@ I_OTISDNSuspendAcknowledge
Definition: OpenTransportProviders.h:2044
@ I_OTISDNSuspendReject
Definition: OpenTransportProviders.h:2046
@ I_OTISDNSuspend
Definition: OpenTransportProviders.h:2042
@ I_OTISDNFaciltity
Definition: OpenTransportProviders.h:2054
@ I_OTISDNResumeReject
Definition: OpenTransportProviders.h:2052
@ I_OTISDNResumeAcknowledge
Definition: OpenTransportProviders.h:2050
@ I_OTISDNResume
Definition: OpenTransportProviders.h:2048
OTByteCount OTSetAddressFromNBPString(UInt8 *addrBuf, const char *name, SInt32 len)
@ kLocalATalkRouterOnline
Definition: OpenTransportProviders.h:720
@ kATalkRouterOnline
Definition: OpenTransportProviders.h:718
OSStatus OTInetQuery(InetSvcRef ref, char *name, UInt16 qClass, UInt16 qType, char *buf, OTByteCount buflen, void **argv, OTByteCount argvlen, OTFlags flags)
void * ATSvcRef
Definition: OpenTransportProviders.h:795
Boolean OTSetNBPZone(NBPEntity *entity, const char *zone)
OSStatus OTAsyncOpenAppleTalkServices(OTConfigurationRef cfig, OTOpenFlags flags, OTNotifyUPP proc, void *contextPtr)
void OTExtractNBPType(const NBPEntity *entity, char *typeVal)
@ DVMRP_DONE
Definition: OpenTransportProviders.h:188
@ kOTSerialSetBreakOn
Definition: OpenTransportProviders.h:1735
@ kOTSerialSetDTROff
Definition: OpenTransportProviders.h:1728
@ kOTSerialSendXOffAlways
Definition: OpenTransportProviders.h:1750
@ kOTSerialSendXOnAlways
Definition: OpenTransportProviders.h:1745
@ kOTSerialForceXOffTrue
Definition: OpenTransportProviders.h:1740
OTByteCount OTGetNBPEntityLengthAsAddress(const NBPEntity *entity)
@ ADSP_IOC_FORWARDRESET
Definition: OpenTransportProviders.h:732
@ kNBPAddressLength
Definition: OpenTransportProviders.h:772
@ kOTISDNFramingV110Supported
Definition: OpenTransportProviders.h:1940
@ kOTISDNFramingHDLCSupported
Definition: OpenTransportProviders.h:1939
@ kOTISDNFramingV14ESupported
Definition: OpenTransportProviders.h:1941
void OTInetHostToString(InetHost host, char *str)
@ kOTISDNVideo64k
Definition: OpenTransportProviders.h:2082
@ kOTISDNVideo56k
Definition: OpenTransportProviders.h:2083
@ kOTISDNDigital64k
Definition: OpenTransportProviders.h:2080
@ kOTISDNDigital56k
Definition: OpenTransportProviders.h:2081
@ kOTISDNTelephoneMuLaw
Definition: OpenTransportProviders.h:2079
@ kOTISDNFramingHDLC
Definition: OpenTransportProviders.h:2091
@ kOTISDNFramingV110
Definition: OpenTransportProviders.h:2092
@ kOTISDNFramingV14E
Definition: OpenTransportProviders.h:2093
OTByteCount OTInitNBPAddress(NBPAddress *addr, const char *name)
ATSvcRef OTOpenAppleTalkServicesInContext(OTConfigurationRef cfig, OTOpenFlags flags, OSStatus *err, OTClientContextPtr clientContext)
OSStatus OTAsyncOpenInternetServices(OTConfigurationRef cfig, OTOpenFlags oflag, OTNotifyUPP proc, void *contextPtr)
Boolean OTCompareDDPAddresses(const DDPAddress *addr1, const DDPAddress *addr2)
OSStatus OTInetStringToHost(const char *str, InetHost *host)
@ kATalkInfoOneZone
Definition: OpenTransportProviders.h:1441
@ kATalkInfoHasRouter
Definition: OpenTransportProviders.h:1440
OSStatus OTInetGetDHCPConfigInfo(InetDHCPOption *buf, UInt32 bufSize, SInt32 index, SInt32 opt)
OSStatus OTAsyncOpenInternetServicesInContext(OTConfigurationRef cfig, OTOpenFlags oflag, OTNotifyUPP upp, void *contextPtr, OTClientContextPtr clientContext)
OSStatus OTInetGetSecondaryAddresses(InetHost *addr, UInt32 *count, SInt32 val)
Boolean OTSetNBPEntityFromAddress(NBPEntity *entity, const UInt8 *addrBuf, OTByteCount len)
@ ATP_OPT_REPLYCNT
Definition: OpenTransportProviders.h:650
@ PAP_OPT_OPENRETRY
Definition: OpenTransportProviders.h:660
@ ATP_OPT_RELTIMER
Definition: OpenTransportProviders.h:654
@ ATP_OPT_DATALEN
Definition: OpenTransportProviders.h:652
@ ATP_OPT_TRANID
Definition: OpenTransportProviders.h:657
OTByteCount OTInitDNSAddress(DNSAddress *addr, char *str)
@ SERIAL_OPT_STATUS
Definition: OpenTransportProviders.h:1770
@ SERIAL_OPT_DUMMY
Definition: OpenTransportProviders.h:1824
@ SERIAL_OPT_HANDSHAKE
Definition: OpenTransportProviders.h:1773
@ SERIAL_OPT_DATABITS
Definition: OpenTransportProviders.h:1767
@ SERIAL_OPT_PARITY
Definition: OpenTransportProviders.h:1769
@ SERIAL_OPT_ERRORCHARACTER
Definition: OpenTransportProviders.h:1794
@ SERIAL_OPT_EXTCLOCK
Definition: OpenTransportProviders.h:1811
@ SERIAL_OPT_RCVTIMEOUT
Definition: OpenTransportProviders.h:1779
@ SERIAL_OPT_BURSTMODE
Definition: OpenTransportProviders.h:1819
@ SERIAL_OPT_STOPBITS
Definition: OpenTransportProviders.h:1768
@ kOTSerialXOnOffOutputHandshake
Definition: OpenTransportProviders.h:1853
@ kOTSerialCTSInputHandshake
Definition: OpenTransportProviders.h:1855
@ kOTSerialDTROutputHandshake
Definition: OpenTransportProviders.h:1857
@ kIP_ADD_MEMBERSHIP
Definition: OpenTransportProviders.h:157
@ kIP_MULTICAST_TTL
Definition: OpenTransportProviders.h:155
@ kIP_DROP_MEMBERSHIP
Definition: OpenTransportProviders.h:158
@ kIP_BROADCAST_IFNAME
Definition: OpenTransportProviders.h:159
@ kIP_RCVIFADDR
Definition: OpenTransportProviders.h:160
@ kIP_MULTICAST_LOOP
Definition: OpenTransportProviders.h:156
@ kOTSerialFramingSDLC
Definition: OpenTransportProviders.h:1717
@ kOTSerialFramingHDLC
Definition: OpenTransportProviders.h:1716
@ kOTSerialFramingPPP
Definition: OpenTransportProviders.h:1719
@ kOTSerialFramingAsyncPackets
Definition: OpenTransportProviders.h:1718
@ kLocalATalkRoutersDown
Definition: OpenTransportProviders.h:707
@ kARARouterDisconnected
Definition: OpenTransportProviders.h:709
InetSvcRef OTOpenInternetServicesInContext(OTConfigurationRef cfig, OTOpenFlags oflag, OSStatus *err, OTClientContextPtr clientContext)
OSStatus OTATalkGetMyZone(ATSvcRef ref, TNetbuf *zone)
@ IP_BROADCAST_IFNAME
Definition: OpenTransportProviders.h:180
@ IP_DROP_MEMBERSHIP
Definition: OpenTransportProviders.h:179
@ IP_MULTICAST_TTL
Definition: OpenTransportProviders.h:176
@ IP_MULTICAST_LOOP
Definition: OpenTransportProviders.h:177
@ IP_ADD_MEMBERSHIP
Definition: OpenTransportProviders.h:178
@ IP_RCVIFADDR
Definition: OpenTransportProviders.h:182
void OTInitDDPAddress(DDPAddress *addr, UInt16 net, UInt8 node, UInt8 socket, UInt8 ddpType)
void OTExtractNBPName(const NBPEntity *entity, char *name)
void OTInitInetAddress(InetAddress *addr, InetPort port, InetHost host)
OSStatus OTInetSysInfo(InetSvcRef ref, char *name, InetSysInfo *sysinfo)
void OTInitNBPEntity(NBPEntity *entity)
void OTExtractNBPZone(const NBPEntity *entity, char *zone)
OSStatus OTInetStringToAddress(InetSvcRef ref, char *name, InetHostInfo *hinfo)
OSStatus OTATalkGetInfo(ATSvcRef ref, TNetbuf *info)
@ kNBPImbeddedWildCard
Definition: OpenTransportProviders.h:757
@ kNBPMaxEntityLength
Definition: OpenTransportProviders.h:752
@ kNBPDefaultZone
Definition: OpenTransportProviders.h:758
UInt16 InetPort
Definition: OpenTransportProviders.h:58
Open Transport client interface file. This contains all the client APIs.
struct OTConfiguration * OTConfigurationRef
Definition: OpenTransport.h:1059
UInt32 OTFlags
Definition: OpenTransport.h:597
UInt32 OTOpenFlags
Definition: OpenTransport.h:334
Definition: OpenTransportProviders.h:1429
UInt16 fFlags
Definition: OpenTransportProviders.h:1433
UInt16 fCableRange[2]
Definition: OpenTransportProviders.h:1432
DDPAddress fRouterAddress
Definition: OpenTransportProviders.h:1431
Definition: OpenTransportProviders.h:2364
Definition: OpenTransportProviders.h:971
UInt16 fNetwork
Definition: OpenTransportProviders.h:973
Definition: OpenTransportProviders.h:1023
UInt16 fNetwork
Definition: OpenTransportProviders.h:1025
Definition: OpenTransportProviders.h:301
InetDomainName fName
Definition: OpenTransportProviders.h:303
Definition: OpenTransportProviders.h:278
UInt16 resourceLen
Definition: OpenTransportProviders.h:284
char resourceData[4]
Definition: OpenTransportProviders.h:285
Definition: OpenTransportProviders.h:1650
Definition: OpenTransportProviders.h:243
UInt8 fUnused[8]
Definition: OpenTransportProviders.h:247
InetPort fPort
Definition: OpenTransportProviders.h:245
InetHost fHost
Definition: OpenTransportProviders.h:246
Definition: OpenTransportProviders.h:343
Definition: OpenTransportProviders.h:260
Definition: OpenTransportProviders.h:318
Definition: OpenTransportProviders.h:272
Definition: OpenTransportProviders.h:266
Definition: OpenTransportProviders.h:2380
Definition: OpenTransportProviders.h:1005
UInt8 fNBPNameBuffer[105]
Definition: OpenTransportProviders.h:1007
Definition: OpenTransportProviders.h:966
Definition: OpenTransportProviders.h:2024
Definition: OpenTransportProviders.h:2353
UInt32 upperMRULimit
Definition: OpenTransportProviders.h:2355
Definition: PPCToolbox.h:168
Definition: OpenTransportProviders.h:2332
Definition: OpenTransportProviders.h:1567
Definition: OpenTransportProviders.h:1672
Definition: OpenTransportProviders.h:1657
Definition: OpenTransportProviders.h:1664
Definition: OpenTransportProviders.h:225
Definition: OpenTransport.h:1518