소스 검색

corex: rpc command shm.stats

- convenience function to be coherent with pkg variants
Daniel-Constantin Mierla 5 년 전
부모
커밋
90e152b691
1개의 변경된 파일27개의 추가작업 그리고 1개의 파일을 삭제
  1. 27 1
      src/modules/corex/corex_rpc_shm.c

+ 27 - 1
src/modules/corex/corex_rpc_shm.c

@@ -54,8 +54,34 @@ static void corex_rpc_shm_info(rpc_t* rpc, void* ctx)
 	}
 }
 
+static const char* corex_rpc_shm_stats_doc[2] = {
+	"Return shared memory stats",
+	0
+};
+
+/*
+ * RPC command to return shm stats
+ */
+static void corex_rpc_shm_stats(rpc_t* rpc, void* c)
+{
+	struct mem_info mi;
+	void *th;
+
+	shm_info(&mi);
+	rpc->add(c, "{", &th);
+	rpc->struct_add(th, "uuuuuu",
+			"total", (unsigned int)(mi.total_size),
+			"free", (unsigned int)(mi.free),
+			"used", (unsigned int)(mi.used),
+			"real_used",(unsigned int)(mi.real_used),
+			"max_used", (unsigned int)(mi.max_used),
+			"fragments", (unsigned int)mi.total_frags
+		);
+}
+
 rpc_export_t corex_rpc_shm_cmds[] = {
-	{"shm.info", corex_rpc_shm_info, corex_rpc_shm_info_doc, 0},
+	{"shm.info",  corex_rpc_shm_info,  corex_rpc_shm_info_doc,  0},
+	{"shm.stats", corex_rpc_shm_stats, corex_rpc_shm_stats_doc, 0},
 	{0, 0, 0, 0}
 };