| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 | // Copyright 2018 Espressif Systems (Shanghai) PTE LTD//// Licensed under the Apache License, Version 2.0 (the "License");// you may not use this file except in compliance with the License.// You may obtain a copy of the License at////     http://www.apache.org/licenses/LICENSE-2.0//// Unless required by applicable law or agreed to in writing, software// distributed under the License is distributed on an "AS IS" BASIS,// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.// See the License for the specific language governing permissions and// limitations under the License.#ifndef __ESP_HTTP_SERVER_H_#define __ESP_HTTP_SERVER_H_#include <stdio.h>#include <string.h>#include <freertos/FreeRTOS.h>#include <freertos/task.h>#include <http_parser.h>#include <sdkconfig.h>#include <esp_err.h>#ifdef __cplusplusextern "C" {#endif/** * @brief Starts the web server * * Create an instance of HTTP server and allocate memory/resources for it * depending upon the specified configuration. * * Example usage: * @code{c} * * //Function for starting the webserver * httpd_handle_t start_webserver(void) * { *      // Generate default configuration *      httpd_config_t config = HTTPD_DEFAULT_CONFIG(); * *      // Empty handle to http_server *      httpd_handle_t server = NULL; * *      // Start the httpd server *      if (httpd_start(&server, &config) == ESP_OK) { *          // Register URI handlers *          httpd_register_uri_handler(server, &uri_get); *          httpd_register_uri_handler(server, &uri_post); *      } *      // If server failed to start, handle will be NULL *      return server; * } * * @endcode * * @param[in]  config   Configuration for new instance of the server * @param[out] handle   Handle to newly created instance of the server. NULL on error * @return *  - ESP_OK    : Instance created successfully *  - ESP_ERR_INVALID_ARG      : Null argument(s) *  - ESP_ERR_HTTPD_ALLOC_MEM  : Failed to allocate memory for instance *  - ESP_ERR_HTTPD_TASK       : Failed to launch server task */esp_err_t  __httpd_start(httpd_handle_t *handle, const httpd_config_t *config);static inline int __httpd_os_thread_create_static(TaskHandle_t *thread,                                 const char *name, uint16_t stacksize, int prio,                                 void (*thread_routine)(void *arg), void *arg,                                 BaseType_t core_id){	StaticTask_t *xTaskBuffer = (StaticTask_t*) heap_caps_malloc(sizeof(StaticTask_t), (MALLOC_CAP_INTERNAL|MALLOC_CAP_8BIT));	StackType_t *xStack = heap_caps_malloc(stacksize,(MALLOC_CAP_SPIRAM|MALLOC_CAP_8BIT));	//	*thread = xTaskCreateStaticPinnedToCore(thread_routine, name, stacksize, arg, prio, xStack,xTaskBuffer,core_id);    if (*thread) {        return ESP_OK;    }    return ESP_FAIL;}#ifdef __cplusplus}#endif#endif /* ! _ESP_HTTP_SERVER_H_ */
 |