{"schema":"libjg2-1",
"vpath":"/git/",
"avatar":"/git/avatar/",
"alang":"",
"gen_ut":1752650670,
"reponame":"libwebsockets",
"desc":"libwebsockets lightweight C networking library",
"owner": { "name": "Andy Green", "email": "andy@warmcat.com", "md5": "c50933ca2aa61e0fe2c43d46bb6b59cb" },"url":"https://libwebsockets.org/repo/libwebsockets",
"f":3,
"items": [
{"schema":"libjg2-1",
"cid":"954dfaa2dbd62359c1188e82c21cc7e7",
"commit": {"type":"commit",
"time": 1563055555,
"time_ofs": 18446744073709551196,
"oid_tree": { "oid": "54f6cae2966bd1d18750f94cd8f9bc1bbdd63303", "alias": []},
"oid":{ "oid": "03f1f30becee73061f0000ded08cae3a3ad2098f", "alias": []},
"msg": "esp32: add local esp_attr",
"sig_commit": { "git_time": { "time": 1563055555, "offset": -420 }, "name": "Andy Green", "email": "andy@warmcat.com", "md5": "c50933ca2aa61e0fe2c43d46bb6b59cb" },
"sig_author": { "git_time": { "time": 1563055555, "offset": -420 }, "name": "Andy Green", "email": "andy@warmcat.com", "md5": "c50933ca2aa61e0fe2c43d46bb6b59cb" }},
"body": "esp32: add local esp_attr"
,
"diff": "diff --git a/lib/plat/esp32/esp_attr.h b/lib/plat/esp32/esp_attr.h\nnew file mode 100644\nindex 0000000..5bf9a22\n--- /dev/null\n+++ b/lib/plat/esp32/esp_attr.h\n@@ -0,0 +1,58 @@\n+// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD\n+//\n+// Licensed under the Apache License, Version 2.0 (the \u0022License\u0022);\n+// you may not use this file except in compliance with the License.\n+// You may obtain a copy of the License at\n+\n+// http://www.apache.org/licenses/LICENSE-2.0\n+//\n+// Unless required by applicable law or agreed to in writing, software\n+// distributed under the License is distributed on an \u0022AS IS\u0022 BASIS,\n+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n+// See the License for the specific language governing permissions and\n+// limitations under the License.\n+#ifndef __ESP_ATTR_H__\n+#define __ESP_ATTR_H__\n+\n+#define ROMFN_ATTR\n+\n+//Normally, the linker script will put all code and rodata in flash,\n+//and all variables in shared RAM. These macros can be used to redirect\n+//particular functions/variables to other memory regions.\n+\n+// Forces code into IRAM instead of flash.\n+#define IRAM_ATTR __attribute__((section(\u0022.iram1\u0022)))\n+\n+// Forces data into DRAM instead of flash\n+#define DRAM_ATTR __attribute__((section(\u0022.dram1\u0022)))\n+\n+// Forces data to be 4 bytes aligned\n+#define WORD_ALIGNED_ATTR __attribute__((aligned(4)))\n+\n+// Forces data to be placed to DMA-capable places\n+#define DMA_ATTR WORD_ALIGNED_ATTR DRAM_ATTR\n+\n+// Forces a string into DRAM instead of flash\n+// Use as ets_printf(DRAM_STR(\u0022Hello world!\u005cn\u0022));\n+#define DRAM_STR(str) (__extension__({static const DRAM_ATTR char __c[] \u003d (str); (const char *)\u0026__c;}))\n+\n+// Forces code into RTC fast memory. See \u0022docs/deep-sleep-stub.rst\u0022\n+#define RTC_IRAM_ATTR __attribute__((section(\u0022.rtc.text\u0022)))\n+\n+// Forces data into RTC slow memory. See \u0022docs/deep-sleep-stub.rst\u0022\n+// Any variable marked with this attribute will keep its value\n+// during a deep sleep / wake cycle.\n+#define RTC_DATA_ATTR __attribute__((section(\u0022.rtc.data\u0022)))\n+\n+// Forces read-only data into RTC slow memory. See \u0022docs/deep-sleep-stub.rst\u0022\n+#define RTC_RODATA_ATTR __attribute__((section(\u0022.rtc.rodata\u0022)))\n+\n+// Forces data into noinit section to avoid initialization after restart.\n+#define __NOINIT_ATTR __attribute__((section(\u0022.noinit\u0022)))\n+\n+// Forces data into RTC slow memory of .noinit section.\n+// Any variable marked with this attribute will keep its value\n+// after restart or during a deep sleep / wake cycle.\n+#define RTC_NOINIT_ATTR __attribute__((section(\u0022.rtc_noinit\u0022)))\n+\n+#endif /* __ESP_ATTR_H__ */\n","s":{"c":1752650670,"u": 1276}}
],"g": 2589,"chitpc": 0,"ehitpc": 0,"indexed":0
,
"ab": 0, "si": 0, "db":0, "di":0, "sat":0, "lfc": "0000"}