//\r
// Basical data type definitions introduced in UEFI.\r
// \r
-typedef GUID EFI_GUID;\r
-typedef RETURN_STATUS EFI_STATUS;\r
-typedef VOID *EFI_HANDLE;\r
+typedef GUID EFI_GUID;\r
+typedef RETURN_STATUS EFI_STATUS;\r
+typedef VOID *EFI_HANDLE;\r
\r
-typedef VOID *EFI_EVENT;\r
+typedef VOID *EFI_EVENT;\r
\r
-typedef UINTN EFI_TPL;\r
+typedef UINTN EFI_TPL;\r
\r
\r
-typedef UINT64 EFI_LBA;\r
+typedef UINT64 EFI_LBA;\r
\r
\r
-typedef UINT16 EFI_HII_HANDLE;\r
-typedef UINT16 STRING_REF;\r
+typedef UINT16 EFI_HII_HANDLE;\r
+typedef UINT16 STRING_REF;\r
\r
-typedef UINT64 EFI_PHYSICAL_ADDRESS;\r
-typedef UINT64 EFI_VIRTUAL_ADDRESS;\r
+typedef UINT64 EFI_PHYSICAL_ADDRESS;\r
+typedef UINT64 EFI_VIRTUAL_ADDRESS;\r
\r
//\r
// EFI Time Abstraction:\r
UINT8 Pad2;\r
} EFI_TIME;\r
\r
+\r
+//\r
+// Networking Definitions\r
+//\r
+typedef struct {\r
+ UINT8 Addr[4];\r
+} EFI_IPv4_ADDRESS;\r
+\r
+typedef struct {\r
+ UINT8 Addr[16];\r
+} EFI_IPv6_ADDRESS;\r
+\r
+typedef struct {\r
+ UINT8 Addr[32];\r
+} EFI_MAC_ADDRESS;\r
+\r
+typedef union {\r
+ UINT32 Addr[4];\r
+ EFI_IPv4_ADDRESS v4;\r
+ EFI_IPv6_ADDRESS v6;\r
+} EFI_IP_ADDRESS;\r
+\r
+\r
//\r
// Enumeration of EFI_STATUS.\r
// \r
#define EFI_WARN_BUFFER_TOO_SMALL RETURN_WARN_BUFFER_TOO_SMALL\r
\r
\r
-#define NULL_HANDLE ((VOID *) 0)\r
+#define NULL_HANDLE ((VOID *) 0)\r
\r
//\r
// Define macro to encode the status code.\r
// \r
-#define EFIERR(_a) ENCODE_ERROR(_a)\r
+#define EFIERR(_a) ENCODE_ERROR(_a)\r
\r
#define EFI_ERROR(A) RETURN_ERROR(A)\r
\r
// 4K. This should in no way be confused with the page size of the processor.\r
// An EFI_PAGE is just the quanta of memory in EFI.\r
//\r
-#define EFI_PAGE_SIZE 0x1000\r
-#define EFI_PAGE_MASK 0xFFF\r
-#define EFI_PAGE_SHIFT 12\r
+#define EFI_PAGE_SIZE 0x1000\r
+#define EFI_PAGE_MASK 0xFFF\r
+#define EFI_PAGE_SHIFT 12\r
+\r
+#define EFI_SIZE_TO_PAGES(a) (((a) >> EFI_PAGE_SHIFT) + (((a) & EFI_PAGE_MASK) ? 1 : 0))\r
+\r
+#define EFI_PAGES_TO_SIZE(a) ( (a) << EFI_PAGE_SHIFT)\r
+\r
\r
+#define EFI_MAX_BIT MAX_BIT\r
+#define EFI_MAX_ADDRESS MAX_ADDRESS\r
\r
#endif\r