{"schema":"libjg2-1",
"vpath":"/git/",
"avatar":"/git/avatar/",
"alang":"",
"gen_ut":1711716097,
"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":"db4104f526c06cbda1130d7171f69814",
"oid":{ "oid": "e4be3317ee421f951fb16a85c7edacc9b8a0e6aa", "alias": [ "refs/heads/main"]},"blobname": "lib/plat/optee/lws-plat-optee.c", "blob": "/*\n * libwebsockets - small server side websockets and web server implementation\n *\n * Copyright (C) 2010 - 2019 Andy Green \u003candy@warmcat.com\u003e\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \u0022Software\u0022), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \u0022AS IS\u0022, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n#include \u0022private-lib-core.h\u0022\n\n#if !defined(LWS_WITH_NETWORK)\n#include \u003ccrypto/crypto.h\u003e\n#endif\n\nint errno;\n\n#if !defined(LWS_WITH_NETWORK)\nchar *\nstrcpy(char *dest, const char *src)\n{\n\tchar *desto \u003d dest;\n\n\twhile (*src)\n\t\t*(dest++) \u003d *(src++);\n\n\t*(dest++) \u003d '\u005c0';\n\n\treturn desto;\n}\n\nchar *strncpy(char *dest, const char *src, size_t limit)\n{\n\tchar *desto \u003d dest;\n\n\twhile (*src \u0026\u0026 limit--)\n\t\t*(dest++) \u003d *(src++);\n\n\tif (limit)\n\t\t*(dest++) \u003d '\u005c0';\n\n\treturn desto;\n}\n\n#endif\n\nint lws_plat_apply_FD_CLOEXEC(int n)\n{\n\treturn 0;\n}\n\nvoid TEE_GenerateRandom(void *randomBuffer, uint32_t randomBufferLen);\n#if defined(LWS_WITH_NETWORK)\nuint64_t\nlws_now_usecs(void)\n{\n\treturn ((unsigned long long)time(NULL)) * 1000000;\n}\n#endif\n\nsize_t\nlws_get_random(struct lws_context *context, void *buf, size_t len)\n{\n#if defined(LWS_WITH_NETWORK)\n\tTEE_GenerateRandom(buf, len);\n#else\n\tcrypto_rng_read(buf, len);\n#endif\n\n\treturn len;\n}\n\n\nstatic const char * const colours[] \u003d {\n \u0022[31;1m\u0022, /* LLL_ERR */\n \u0022[36;1m\u0022, /* LLL_WARN */\n \u0022[35;1m\u0022, /* LLL_NOTICE */\n \u0022[32;1m\u0022, /* LLL_INFO */\n \u0022[34;1m\u0022, /* LLL_DEBUG */\n \u0022[33;1m\u0022, /* LLL_PARSER */\n \u0022[33;1m\u0022, /* LLL_HEADER */\n \u0022[33;1m\u0022, /* LLL_EXT */\n \u0022[33;1m\u0022, /* LLL_CLIENT */\n \u0022[33;1m\u0022, /* LLL_LATENCY */\n \u0022[30;1m\u0022, /* LLL_USER */\n};\n\nvoid lwsl_emit_optee(int level, const char *line)\n{\n char buf[50], linecp[512];\n int n, m \u003d LWS_ARRAY_SIZE(colours) - 1;\n\n lwsl_timestamp(level, buf, sizeof(buf));\n\n n \u003d 1 \u003c\u003c (LWS_ARRAY_SIZE(colours) - 1);\n while (n) {\n if (level \u0026 n)\n break;\n m--;\n n \u003e\u003e\u003d 1;\n }\n n \u003d strlen(line);\n if ((unsigned int)n \u003e sizeof(linecp) - 1)\n n \u003d sizeof(linecp) - 1;\n if (n) {\n memcpy(linecp, line, n - 1);\n\t linecp[n - 1] \u003d '\u005c0';\n\t} else\n\t\tlinecp[0] \u003d '\u005c0';\n EMSG(\u0022%c%s%s%s%c[0m\u0022, 27, colours[m], buf, linecp, 27);\n}\n\nint\nlws_plat_set_nonblocking(lws_sockfd_type fd)\n{\n\treturn 0;\n}\n\nint\nlws_plat_drop_app_privileges(struct lws_context *context, int actually_init)\n{\n\treturn 0;\n}\n\nint\nlws_plat_context_early_init(void)\n{\n\treturn 0;\n}\n\nvoid\nlws_plat_context_early_destroy(struct lws_context *context)\n{\n}\n\nvoid\nlws_plat_context_late_destroy(struct lws_context *context)\n{\n#if defined(LWS_WITH_NETWORK)\n\tif (context-\u003elws_lookup)\n\t\tlws_free(context-\u003elws_lookup);\n#endif\n}\n\nlws_fop_fd_t\n_lws_plat_file_open(const struct lws_plat_file_ops *fops,\n\t\t const char *filename, const char *vpath, lws_fop_flags_t *flags)\n{\n\treturn NULL;\n}\n\nint\n_lws_plat_file_close(lws_fop_fd_t *fop_fd)\n{\n\treturn 0;\n}\n\nlws_fileofs_t\n_lws_plat_file_seek_cur(lws_fop_fd_t fop_fd, lws_fileofs_t offset)\n{\n\treturn 0;\n}\n\n int\n_lws_plat_file_read(lws_fop_fd_t fop_fd, lws_filepos_t *amount,\n\t\t uint8_t *buf, lws_filepos_t len)\n{\n\n\treturn 0;\n}\n\n int\n_lws_plat_file_write(lws_fop_fd_t fop_fd, lws_filepos_t *amount,\n\t\t uint8_t *buf, lws_filepos_t len)\n{\n\n\treturn 0;\n}\n\n\nint\nlws_plat_init(struct lws_context *context,\n\t const struct lws_context_creation_info *info)\n{\n#if defined(LWS_WITH_NETWORK)\n\t/* context has the global fd lookup array */\n\tcontext-\u003elws_lookup \u003d lws_zalloc(sizeof(struct lws *) *\n\t\t\t\t\t context-\u003emax_fds, \u0022lws_lookup\u0022);\n\tif (context-\u003elws_lookup \u003d\u003d NULL) {\n\t\tlwsl_err(\u0022OOM on lws_lookup array for %d connections\u005cn\u0022,\n\t\t\t context-\u003emax_fds);\n\t\treturn 1;\n\t}\n\n\tlwsl_notice(\u0022 mem: platform fd map: %5lu bytes\u005cn\u0022,\n\t\t (long)sizeof(struct lws *) * context-\u003emax_fds);\n#endif\n#ifdef LWS_WITH_PLUGINS\n\tif (info-\u003eplugin_dirs)\n\t\tlws_plat_plugins_init(context, info-\u003eplugin_dirs);\n#endif\n\n\treturn 0;\n}\n\nint\nlws_plat_write_file(const char *filename, void *buf, size_t len)\n{\n\treturn 1;\n}\n\nint\nlws_plat_read_file(const char *filename, void *buf, int len)\n{\n\treturn -1;\n}\n\nint\nlws_plat_recommended_rsa_bits(void)\n{\n\treturn 4096;\n}\n\nint\nlws_plat_ntpclient_config(struct lws_context *context)\n{\n#if 0\n\tchar *ntpsrv \u003d getenv(\u0022LWS_NTP_SERVER\u0022);\n\n\tif (ntpsrv \u0026\u0026 strlen(ntpsrv) \u003c 64) {\n\t\tlws_system_blob_heap_append(lws_system_get_blob(context,\n\t\t\t\t\t LWS_SYSBLOB_TYPE_NTP_SERVER, 0),\n\t\t\t\t\t (const uint8_t *)ntpsrv,\n\t\t\t\t\t strlen(ntpsrv));\n\t\treturn 1;\n\t}\n#endif\n\treturn 0;\n}\n\nvoid\nlws_msleep(unsigned int ms)\n{\n}\n\n\n","s":{"c":1711716097,"u": 361}}
],"g": 1770,"chitpc": 0,"ehitpc": 0,"indexed":0
,
"ab": 1, "si": 0, "db":0, "di":0, "sat":0, "lfc": "0000"}