BaseTools:Change the path of the file that Binary Cache
[mirror_edk2.git] / MdeModulePkg / Library / DxeHttpLib / DxeHttpLib.h
1 /** @file\r
2 Header file for HttpLib.\r
3 \r
4   Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>\r
5   (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>\r
6 \r
7   SPDX-License-Identifier: BSD-2-Clause-Patent\r
8 \r
9 **/\r
10 \r
11 #ifndef _DXE_HTTP_LIB_H_\r
12 #define _DXE_HTTP_LIB_H_\r
13 \r
14 #include <Uefi.h>\r
15 #include <Library/NetLib.h>\r
16 #include <Library/HttpLib.h>\r
17 #include <Library/BaseLib.h>\r
18 #include <Library/DebugLib.h>\r
19 #include <Library/MemoryAllocationLib.h>\r
20 #include <Library/UefiBootServicesTableLib.h>\r
21 #include <IndustryStandard/Http11.h>\r
22 #include <Protocol/HttpUtilities.h>\r
23 \r
24 #define BIT(x)  (1 << x)\r
25 \r
26 #define HTTP_VERSION_CRLF_STR  " HTTP/1.1\r\n"\r
27 #define EMPTY_SPACE            " "\r
28 \r
29 #define NET_IS_HEX_CHAR(Ch)   \\r
30   ((('0' <= (Ch)) && ((Ch) <= '9')) ||  \\r
31    (('A' <= (Ch)) && ((Ch) <= 'F')) ||  \\r
32    (('a' <= (Ch)) && ((Ch) <= 'f')))\r
33 \r
34 //\r
35 // Field index of the HTTP URL parse result.\r
36 //\r
37 #define   HTTP_URI_FIELD_SCHEME           0\r
38 #define   HTTP_URI_FIELD_AUTHORITY        1\r
39 #define   HTTP_URI_FIELD_PATH             2\r
40 #define   HTTP_URI_FIELD_QUERY            3\r
41 #define   HTTP_URI_FIELD_FRAGMENT         4\r
42 #define   HTTP_URI_FIELD_USERINFO         5\r
43 #define   HTTP_URI_FIELD_HOST             6\r
44 #define   HTTP_URI_FIELD_PORT             7\r
45 #define   HTTP_URI_FIELD_MAX              8\r
46 \r
47 #define   HTTP_URI_PORT_MAX_NUM           65535\r
48 \r
49 //\r
50 // Structure to store the parse result of a HTTP URL.\r
51 //\r
52 typedef struct {\r
53   UINT32      Offset;\r
54   UINT32      Length;\r
55 } HTTP_URL_FILED_DATA;\r
56 \r
57 typedef struct {\r
58   UINT16                  FieldBitMap;\r
59   HTTP_URL_FILED_DATA     FieldData[HTTP_URI_FIELD_MAX];\r
60 } HTTP_URL_PARSER;\r
61 \r
62 typedef enum {\r
63   UrlParserUrlStart,\r
64   UrlParserScheme,\r
65   UrlParserSchemeColon,            // ":"\r
66   UrlParserSchemeColonSlash,       // ":/"\r
67   UrlParserSchemeColonSlashSlash,  // "://"\r
68   UrlParserAuthority,\r
69   UrlParserAtInAuthority,\r
70   UrlParserPath,\r
71   UrlParserQueryStart,    // "?"\r
72   UrlParserQuery,\r
73   UrlParserFragmentStart, // "#"\r
74   UrlParserFragment,\r
75   UrlParserUserInfo,\r
76   UrlParserHostStart,     // "@"\r
77   UrlParserHost,\r
78   UrlParserHostIpv6,      // "["(Ipv6 address) "]"\r
79   UrlParserPortStart,     // ":"\r
80   UrlParserPort,\r
81   UrlParserStateMax\r
82 } HTTP_URL_PARSE_STATE;\r
83 \r
84 #endif\r
85 \r