-/** @file
-
-Copyright (c) 2005 - 2006, Intel Corporation
-All rights reserved. This program and the accompanying materials
-are licensed and made available under the terms and conditions of the BSD License
-which accompanies this distribution. The full text of the license may be found at
-http://opensource.org/licenses/bsd-license.php
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-
-Module Name:
-
- Ip4Option.h
-
-Abstract:
-
- IP4 option support routines.
-
-
-**/
-
-#ifndef __EFI_IP4_OPTION_H__
-#define __EFI_IP4_OPTION_H__
-
-enum {
- IP4_OPTION_EOP = 0,
- IP4_OPTION_NOP = 1,
- IP4_OPTION_LSRR = 131, // Loss source and record routing, 10000011
- IP4_OPTION_SSRR = 137, // Strict source and record routing, 10001001
- IP4_OPTION_RR = 7, // Record routing, 00000111
-
- IP4_OPTION_COPY_MASK = 0x80,
-};
-
-BOOLEAN
-Ip4OptionIsValid (
- IN UINT8 *Option,
- IN UINT32 OptLen,
- IN BOOLEAN Rcvd
- );
-
-EFI_STATUS
-Ip4CopyOption (
- IN UINT8 *Option,
- IN UINT32 OptLen,
- IN BOOLEAN Fragment,
- IN UINT8 *Buf, OPTIONAL
- IN OUT UINT32 *BufLen
- );
-#endif
+/** @file\r
+ IP4 option support routines.\r
+ \r
+Copyright (c) 2005 - 2009, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution. The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+**/\r
+\r
+#ifndef __EFI_IP4_OPTION_H__\r
+#define __EFI_IP4_OPTION_H__\r
+\r
+#define IP4_OPTION_EOP 0\r
+#define IP4_OPTION_NOP 1\r
+#define IP4_OPTION_LSRR 131 // Loss source and record routing, 10000011\r
+#define IP4_OPTION_SSRR 137 // Strict source and record routing, 10001001\r
+#define IP4_OPTION_RR 7 // Record routing, 00000111\r
+\r
+#define IP4_OPTION_COPY_MASK 0x80\r
+\r
+/**\r
+ Validate the IP4 option format for both the packets we received\r
+ and will transmit. It will compute the ICMP error message fields\r
+ if the option is mal-formated. But this information isn't used.\r
+\r
+ @param[in] Option The first byte of the option\r
+ @param[in] OptionLen The length of the whole option\r
+ @param[in] Rcvd The option is from the packet we received if TRUE,\r
+ otherwise the option we wants to transmit.\r
+\r
+ @retval TRUE The option is properly formatted\r
+ @retval FALSE The option is mal-formated\r
+\r
+**/\r
+BOOLEAN\r
+Ip4OptionIsValid (\r
+ IN UINT8 *Option,\r
+ IN UINT32 OptionLen,\r
+ IN BOOLEAN Rcvd\r
+ );\r
+\r
+/**\r
+ Copy the option from the original option to buffer. It\r
+ handles the details such as:\r
+ 1. whether copy the single IP4 option to the first/non-first\r
+ fragments.\r
+ 2. Pad the options copied over to aligned to 4 bytes.\r
+\r
+ @param[in] Option The original option to copy from\r
+ @param[in] OptionLen The length of the original option\r
+ @param[in] FirstFragment Whether it is the first fragment\r
+ @param[in, out] Buf The buffer to copy options to. NULL \r
+ @param[in, out] BufLen The length of the buffer\r
+\r
+ @retval EFI_SUCCESS The options are copied over\r
+ @retval EFI_BUFFER_TOO_SMALL Buf is NULL or BufLen provided is too small.\r
+\r
+**/\r
+EFI_STATUS\r
+Ip4CopyOption (\r
+ IN UINT8 *Option,\r
+ IN UINT32 OptionLen,\r
+ IN BOOLEAN FirstFragment,\r
+ IN OUT UINT8 *Buf, OPTIONAL\r
+ IN OUT UINT32 *BufLen\r
+ );\r
+#endif\r