当前位置: 首页 > news >正文

用Wordpress建的网站有一般做个小程序多少钱

用Wordpress建的网站有,一般做个小程序多少钱,爱站网ip反域名查询,wordpress百度编辑器TPM 2.0中的tpm2_evictcontrol命令对应的源文件就是tpm2_evictcontrol.c#xff0c;该文件位于tpm2-tools/tools/下#xff0c;一共有339行#xff08;版本5.5#xff09;。 tpm2_evictcontrol的功能是使一个被加载的密钥持久保存、或者从TPM中移除一个持久密钥。命令描述…TPM 2.0中的tpm2_evictcontrol命令对应的源文件就是tpm2_evictcontrol.c该文件位于tpm2-tools/tools/下一共有339行版本5.5。 tpm2_evictcontrol的功能是使一个被加载的密钥持久保存、或者从TPM中移除一个持久密钥。命令描述为此命令允许一个临时对象被持久化或者一个持久对象被移除。HANDLE参数控制句柄将被分配到的索引。如果通过-c指定的对象是临时的并且指定了永久HANDLE则该对象将在HANDLE处被持久化如果HANDLE是-那么对象将被持久化在第一个可用的永久句柄位置如果通过-c指定的对象是一个永久句柄那么该对象将从其永久句柄位置被逐出移除。 下边用几篇文章的篇幅对tpm2_evictcontrol.c文件结合tpm2_evictcontrol命令进行深入的、完全的解析。 先来看第一段代码 / Register this tool with tpm2_tool.c TPM2_TOOL_REGISTER(evictcontrol, tpm2_tool_onstart, tpm2_tool_onrun,tpm2_tool_onstop, 0)TPM2_TOOL_REGISTER是一个宏定义在tpm2-tools/tools/tpm2_tool.h中代码如下 #define TPM2_TOOL_REGISTER(tool_name,tool_onstart,tool_onrun,tool_onstop,tool_onexit) \static const tpm2_tool tool { \.name tool_name, \.onstart tool_onstart, \.onrun tool_onrun, \.onstop tool_onstop, \.onexit tool_onexit, \}; \static void \__attribute__((__constructor__)) \__attribute__((__used__)) \_tpm2_tool_init(void) \{ \tpm2_tool_register(tool); \}TPM2_TOOLS_REGISTER宏定义是整个tpm2-tools中的命令所共用的是一个框架性质的代码。 在本文件tpm2_evictcontrol.c也可以说tpm2_evictcontrol命令中宏展开后为 static const tpm2_tool tool {.name evictcontrol,.onstart tpm2_tool_onstart,.onrun tpm2_tool_onrun,.onstop tpm2_tool_onstop,.onexit 0, }; static void__attribute__((__constructor__))__attribute__((__used__))_tpm2_tool_init(void) {tpm2_tool_register(tool); }tpm2_tool结构的定义也在tpm2-tools/tools/tpm2_tool.h中代码如下 typedef struct {const char * name;tpm2_tool_onstart_t onstart;tpm2_tool_onrun_t onrun;tpm2_tool_onstop_t onstop;tpm2_tool_onexit_t onexit; } tpm2_tool; 其中包含的相关函数指针如下同文件中就在上边 /*** An optional interface for tools to specify what options they support.* They are concatenated with mains options and passed to getopt_long.* param opts* The callee can choose to set *opts to a tpm_options pointer allocated* via tpm2_options_new(). Setting *opts to NULL is not an error, and* Indicates that no options are specified by the tool.** return* True on success, false on error.*/ typedef bool (*tpm2_tool_onstart_t)(tpm2_options **opts);/*** This is the main interface for tools, after tcti and sapi/esapi initialization* are performed.* param ectx* The system/esapi api context.* param flags* Flags that tools may wish to respect.* return* A tool_rc indicating status.*/ typedef tool_rc (*tpm2_tool_onrun_t)(ESYS_CONTEXT *ectx, tpm2_option_flags flags);/*** Called after tpm2_tool_onrun() is invoked. ESAPI context is still valid during this call.* param ectx* The system/esapi api context.* return* A tool_rc indicating status.*/ typedef tool_rc (*tpm2_tool_onstop_t)(ESYS_CONTEXT *ectx);/*** Called when the tool is exiting, useful for cleanup.*/ typedef void (*tpm2_tool_onexit_t)(void); tpm2_tool_register函数在tpm2-tools/tools/tpm2_tools.c中实现代码如下 /** Build a list of the TPM2 tools linked into this executable*/ #ifndef TPM2_TOOLS_MAX #define TPM2_TOOLS_MAX 1024 #endif static const tpm2_tool *tools[TPM2_TOOLS_MAX]; static unsigned tool_count;void tpm2_tool_register(const tpm2_tool *tool) {if (tool_count TPM2_TOOLS_MAX) {tools[tool_count] tool;} else {LOG_ERR(Over tool count);abort();} } 回到tpm2_evictcontrol.c来看具体的几个函数。 1tpm2_tool_onstart tpm2_tool_onstart函数代码如下 static bool tpm2_tool_onstart(tpm2_options **opts) {const struct option topts[] {{ hierarchy, required_argument, 0, C },{ auth, required_argument, 0, P },{ object-context, required_argument, 0, c },{ output, required_argument, 0, o },{ cphash, required_argument, 0, 0 },};*opts tpm2_options_new(C:P:c:o:, ARRAY_LEN(topts), topts, on_option,on_arg, 0);return *opts ! 0; } 2tpm2_tool_onrun tpm2_tool_onrun函数代码如下 static tool_rc tpm2_tool_onrun(ESYS_CONTEXT *ectx, tpm2_option_flags flags) {UNUSED(flags);/** 1. Process options*/tool_rc rc check_options(ectx);if (rc ! tool_rc_success) {return rc;}/** 2. Process inputs*/rc process_inputs(ectx);if (rc ! tool_rc_success) {return rc;}/** 3. TPM2_CC_command call*/rc evictcontrol(ectx);if (rc ! tool_rc_success) {return rc;}/** 4. Process outputs*/return process_output(ectx); } 3tpm2_tool_onstop tpm2_tool_onstop函数代码如下 static tool_rc tpm2_tool_onstop(ESYS_CONTEXT *ectx) {UNUSED(ectx);/** 1. Free objects*//** 2. Close authorization sessions*/tool_rc rc tpm2_session_close(ctx.auth_hierarchy.object.session);/** 3. Close auxiliary sessions*/return rc; } 后续文章对这几个函数进行深入解析。
http://www.w-s-a.com/news/322681/

相关文章:

  • 水墨 网站源码工装
  • 任丘网站建设服务网站 建设原则
  • 长沙做一个网站要多少钱网站底部备案代码
  • wordpress构建自定义设置页面seo培训学什么
  • 延安有哪些做网站的公司如何建设网站?
  • 网站建设者属于广告经营者吗网站管理程序
  • 网站内容优化方法深圳市宝安区怎么样
  • 视频网站开发视频公司网站制作多少钱
  • 单页简洁手机网站模板购物软件
  • 素材网站官网低价网站建设费用预算
  • 苏州网站设计kgwl个人网站有什么外国广告做
  • 浙江省网站建设报价简单网站开发工具
  • 物流网站的建设wordpress电视直播插件下载
  • 简述网站开发流程青岛做网站建设价格低
  • 网站开发的业务需求分析杭州推广公司
  • 网站建设技术实现难点app开发需要哪些软件
  • 响水建设局网站做网站需要会哪些知识
  • 企业制作企业网站个人网站可以做百度竞价
  • 做网站找投资人wordpress 5 主题教程
  • 做国外网站汇款用途是什么wordpress图片主题晨曦
  • 网站设计跟网站开发区别为什么网站需要维护
  • m 的手机网站怎么做网络推广方式和方法
  • wordpress图片自动轮播插件seo门户网站建设
  • 制作商业网站传奇网页游戏排名
  • 网站免费推广方案长沙房地产网站设计
  • 济南网站建设cnwenhui中交路桥建设网站
  • 韶关网站开发网站建设任务分解
  • 网站建设核心点阿根廷网站后缀
  • 哪些网站可以做招商广告语学校官网页面设计
  • 十堰城市建设网站网站开发流程宜春