Pārlūkot izejas kodu

Documented up to PXENV_UNDI_CLOSE

tags/v0.9.3
Michael Brown 19 gadus atpakaļ
vecāks
revīzija
cd9742e054
1 mainītis faili ar 60 papildinājumiem un 0 dzēšanām
  1. 60
    0
      src/include/pxe_api.h

+ 60
- 0
src/include/pxe_api.h Parādīt failu

@@ -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;

Notiek ielāde…
Atcelt
Saglabāt