Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

118 lines
2.1 KiB

  1. //
  2. // Copyright (c) 2000-2001, Microsoft Corporation, all rights reserved
  3. //
  4. // nicarp.h
  5. //
  6. // IEEE1394 mini-port/call-manager driver
  7. //
  8. // Decl file for structures that are common to nic1394 and arp1394
  9. // but are private to these two modules
  10. //
  11. // 12/28/1998 ADube Created.
  12. //
  13. // Loopback Information - Indicates to the arp module
  14. // that a packet is a loopback packet
  15. //
  16. #ifndef __NICARP_H
  17. #define __NICARP_H
  18. #define NIC_LOOPBACK_TAG 0x0bad0bad
  19. typedef struct _LOOPBACK_RSVD
  20. {
  21. UCHAR Mandatory[PROTOCOL_RESERVED_SIZE_IN_PACKET];
  22. ULONG LoopbackTag;
  23. } LOOPBACK_RSVD, *PLOOPBACK_RSVD;
  24. // Status Indicated by nic1394 to tell arp1394 that the bus has been reset
  25. #define NIC1394_STATUS_BUS_RESET ((NDIS_STATUS)0x13940001)
  26. // Ethernet MAC address
  27. //
  28. #define ARP_802_ADDR_LENGTH 6 // Length of an 802 address.
  29. typedef struct
  30. {
  31. UCHAR addr[ARP_802_ADDR_LENGTH];
  32. } ENetAddr;
  33. //
  34. // Structure used to define the topology of the bus.
  35. // This is used only in the case where the bridge is present.
  36. //
  37. typedef struct _EUID_TUPLE
  38. {
  39. // The 64 buit Unique Id of the 1394 card
  40. UINT64 Euid;
  41. // The Ethernet Mac Address associated with this 1394 card
  42. ENetAddr ENetAddress;
  43. }EUID_TUPLE, *PEUID_TUPLE;
  44. typedef struct _EUID_TOPOLOGY
  45. {
  46. //Number of remote nodes
  47. UINT NumberOfRemoteNodes;
  48. // Have one record for each of the 64 nodes
  49. EUID_TUPLE Node[64];
  50. }EUID_TOPOLOGY, *PEUID_TOPOLOGY;
  51. //
  52. // Structure used in parsing the Encapsulation Header
  53. // of an IP/1394 packet
  54. //
  55. typedef enum _NDIS1394_FRAGMENT_LF
  56. {
  57. lf_Unfragmented,
  58. lf_FirstFragment,
  59. lf_LastFragment,
  60. lf_InteriorFragment
  61. } NDIS1394_FRAGMENT_LF, *PNDIS1394_FRAGMENT_LF;
  62. typedef union _NDIS1394_UNFRAGMENTED_HEADER
  63. {
  64. // NIC1394_UNFRAGMENTED_HEADER Header;
  65. ULONG HeaderUlong;
  66. struct
  67. {
  68. ULONG FH_EtherType:16;
  69. ULONG FH_rsv:14;
  70. ULONG FH_lf:2;
  71. } u;
  72. struct
  73. {
  74. UCHAR fHeaderHasSourceAddress;
  75. UCHAR SourceAddress;
  76. USHORT EtherType;
  77. } u1;
  78. } NDIS1394_UNFRAGMENTED_HEADER, *PNDIS1394_UNFRAGMENTED_HEADER;
  79. #endif