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