|
@@ -655,6 +655,7 @@ extern PXENV_EXIT_t pxenv_undi_startup ( struct s_PXENV_UNDI_STARTUP
|
655
|
655
|
|
656
|
656
|
/** Parameter block for pxenv_undi_cleanup() */
|
657
|
657
|
struct s_PXENV_UNDI_CLEANUP {
|
|
658
|
+ PXENV_STATUS_t Status; /**< PXE status code */
|
658
|
659
|
} PACKED;
|
659
|
660
|
|
660
|
661
|
typedef struct s_PXENV_UNDI_CLEANUP PXENV_UNDI_CLEANUP_t;
|
|
@@ -676,6 +677,16 @@ extern PXENV_EXIT_t pxenv_undi_cleanup ( struct s_PXENV_UNDI_CLEANUP
|
676
|
677
|
|
677
|
678
|
/** Parameter block for pxenv_undi_initialize() */
|
678
|
679
|
struct s_PXENV_UNDI_INITIALIZE {
|
|
680
|
+ PXENV_STATUS_t Status; /**< PXE status code */
|
|
681
|
+ /** NDIS 2.0 configuration information, or NULL
|
|
682
|
+ *
|
|
683
|
+ * This is a pointer to the data structure returned by the
|
|
684
|
+ * NDIS 2.0 GetProtocolManagerInfo() API call. The data
|
|
685
|
+ * structure is documented, in a rather haphazard way, in
|
|
686
|
+ * section 4-17 of the NDIS 2.0 specification.
|
|
687
|
+ */
|
|
688
|
+ ADDR32_t ProtocolIni;
|
|
689
|
+ UINT8_t reserved[8]; /**< Must be zero */
|
679
|
690
|
} PACKED;
|
680
|
691
|
|
681
|
692
|
typedef struct s_PXENV_UNDI_INITIALIZE PXENV_UNDI_INITIALIZE_t;
|
|
@@ -695,8 +706,24 @@ extern PXENV_EXIT_t pxenv_undi_initialize ( struct s_PXENV_UNDI_INITIALIZE
|
695
|
706
|
/** PXE API function code for pxenv_undi_reset_adapter() */
|
696
|
707
|
#define PXENV_UNDI_RESET_ADAPTER 0x0004
|
697
|
708
|
|
|
709
|
+/** Maximum number of multicast MAC addresses */
|
|
710
|
+#define MAXNUM_MCADDR 8
|
|
711
|
+
|
|
712
|
+/** List of multicast MAC addresses */
|
|
713
|
+struct s_PXENV_UNDI_MCAST_ADDRESS {
|
|
714
|
+ /** Number of multicast MAC addresses */
|
|
715
|
+ UINT16_t MCastAddrCount;
|
|
716
|
+ /** List of up to #MAXNUM_MCADDR multicast MAC addresses */
|
|
717
|
+ MAC_ADDR_t McastAddr[MAXNUM_MCADDR];
|
|
718
|
+} PACKED;
|
|
719
|
+
|
|
720
|
+typedef struct s_PXENV_UNDI_MCAST_ADDRESS PXENV_UNDI_MCAST_ADDRESS_t;
|
|
721
|
+
|
698
|
722
|
/** Parameter block for pxenv_undi_reset_adapter() */
|
699
|
723
|
struct s_PXENV_UNDI_RESET_ADAPTER {
|
|
724
|
+ PXENV_STATUS_t Status; /**< PXE status code */
|
|
725
|
+ /** Multicast MAC addresses */
|
|
726
|
+ struct s_PXENV_UNDI_MCAST_ADDRESS R_Mcast_Buf;
|
700
|
727
|
} PACKED;
|
701
|
728
|
|
702
|
729
|
typedef struct s_PXENV_UNDI_RESET_ADAPTER PXENV_UNDI_RESET_ADAPTER_t;
|
|
@@ -718,6 +745,7 @@ extern PXENV_EXIT_t pxenv_undi_reset_adapter ( struct s_PXENV_UNDI_RESET
|
718
|
745
|
|
719
|
746
|
/** Parameter block for pxenv_undi_shutdown() */
|
720
|
747
|
struct s_PXENV_UNDI_SHUTDOWN {
|
|
748
|
+ PXENV_STATUS_t Status; /**< PXE status code */
|
721
|
749
|
} PACKED;
|
722
|
750
|
|
723
|
751
|
typedef struct s_PXENV_UNDI_SHUTDOWN PXENV_UNDI_SHUTDOWN_t;
|
|
@@ -737,8 +765,39 @@ extern PXENV_EXIT_t pxenv_undi_shutdown ( struct s_PXENV_UNDI_SHUTDOWN
|
737
|
765
|
/** PXE API function code for pxenv_undi_open() */
|
738
|
766
|
#define PXENV_UNDI_OPEN 0x0006
|
739
|
767
|
|
|
768
|
+/** Accept "directed" packets
|
|
769
|
+ *
|
|
770
|
+ * These are packets addresses to either this adapter's MAC address or
|
|
771
|
+ * to any of the configured multicast MAC addresses (see
|
|
772
|
+ * #s_PXENV_UNDI_MCAST_ADDRESS).
|
|
773
|
+ */
|
|
774
|
+#define FLTR_DIRECTED 0x0001
|
|
775
|
+/** Accept broadcast packets */
|
|
776
|
+#define FLTR_BRDCST 0x0002
|
|
777
|
+/** Accept all packets; listen in promiscuous mode */
|
|
778
|
+#define FLTR_PRMSCS 0x0004
|
|
779
|
+/** Accept source-routed packets */
|
|
780
|
+#define FLTR_SRC_RTG 0x0008
|
|
781
|
+
|
740
|
782
|
/** Parameter block for pxenv_undi_open() */
|
741
|
783
|
struct s_PXENV_UNDI_OPEN {
|
|
784
|
+ PXENV_STATUS_t Status; /**< PXE status code */
|
|
785
|
+ /** Open flags as defined in NDIS 2.0
|
|
786
|
+ *
|
|
787
|
+ * This is the OpenOptions field as passed to the NDIS 2.0
|
|
788
|
+ * OpenAdapter() API call. It is defined to be "adapter
|
|
789
|
+ * specific", though 0 is guaranteed to be a valid value.
|
|
790
|
+ */
|
|
791
|
+ UINT16_t OpenFlag;
|
|
792
|
+ /** Receive packet filter
|
|
793
|
+ *
|
|
794
|
+ * This is the bitwise-OR of any of the following flags:
|
|
795
|
+ * #FLTR_DIRECTED, #FLTR_BRDCST, #FLTR_PRMSCS and
|
|
796
|
+ * #FLTR_SRC_RTG.
|
|
797
|
+ */
|
|
798
|
+ UINT16_t PktFilter;
|
|
799
|
+ /** Multicast MAC addresses */
|
|
800
|
+ struct s_PXENV_UNDI_MCAST_ADDRESS R_Mcast_Buf;
|
742
|
801
|
} PACKED;
|
743
|
802
|
|
744
|
803
|
typedef struct s_PXENV_UNDI_OPEN PXENV_UNDI_OPEN_t;
|
|
@@ -759,6 +818,7 @@ extern PXENV_EXIT_t pxenv_undi_open ( struct s_PXENV_UNDI_OPEN *undi_open );
|
759
|
818
|
|
760
|
819
|
/** Parameter block for pxenv_undi_close() */
|
761
|
820
|
struct s_PXENV_UNDI_CLOSE {
|
|
821
|
+ PXENV_STATUS_t Status; /**< PXE status code */
|
762
|
822
|
} PACKED;
|
763
|
823
|
|
764
|
824
|
typedef struct s_PXENV_UNDI_CLOSE PXENV_UNDI_CLOSE_t;
|