diff options
author | Alexei Vladishev <alexei.vladishev@zabbix.com> | 2013-02-12 20:32:23 +0400 |
---|---|---|
committer | Alexei Vladishev <alexei.vladishev@zabbix.com> | 2013-02-12 20:32:23 +0400 |
commit | 2bdcc88542ac6a16406c4feeeb3b75cf6ce12cb6 (patch) | |
tree | d055b207e009d7922e07ec9f414534f12067d390 /include/module.h | |
parent | 9cc58394e42664fa32c7ed18568a8775b843ff55 (diff) |
...G...... [ZBXNEXT-1550] added support of loadable modules for zabbix_agent, better location of source files and various minor improvements
Diffstat (limited to 'include/module.h')
-rw-r--r-- | include/module.h | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/include/module.h b/include/module.h new file mode 100644 index 00000000000..de7415aef74 --- /dev/null +++ b/include/module.h @@ -0,0 +1,92 @@ +/* +** Zabbix +** Copyright (C) 2000-2013 Zabbix SIA +** +** This program is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation; either version 2 of the License, or +** (at your option) any later version. +** +** This program is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with this program; if not, write to the Free Software +** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +**/ + +#ifndef ZABBIX_MODULE_H +#define ZABBIX_MODULE_H + +#define ZBX_MODULE_OK 0 +#define ZBX_MODULE_FAIL -1 + +#define get_rparam(request,num) ((request->nparam > num) ? request->params[num] : NULL) + +/* agent request structure */ +typedef struct +{ + char *key; + int nparam; + int timeout; + char **params; +} +AGENT_REQUEST; + +/* agent return structure */ +typedef struct +{ + int type; + zbx_uint64_t ui64; + double dbl; + char *str; + char *text; + char *msg; +} +AGENT_RESULT; + +/* agent result types */ +#define AR_UINT64 0x01 +#define AR_DOUBLE 0x02 +#define AR_STRING 0x04 +#define AR_TEXT 0x08 +#define AR_MESSAGE 0x10 + +/* SET RESULT */ + +#define SET_UI64_RESULT(res, val) \ +( \ + (res)->type |= AR_UINT64, \ + (res)->ui64 = (zbx_uint64_t)(val) \ +) + +#define SET_DBL_RESULT(res, val) \ +( \ + (res)->type |= AR_DOUBLE, \ + (res)->dbl = (double)(val) \ +) + +/* NOTE: always allocate new memory for val! DON'T USE STATIC OR STACK MEMORY!!! */ +#define SET_STR_RESULT(res, val) \ +( \ + (res)->type |= AR_STRING, \ + (res)->str = (char *)(val) \ +) + +/* NOTE: always allocate new memory for val! DON'T USE STATIC OR STACK MEMORY!!! */ +#define SET_TEXT_RESULT(res, val) \ +( \ + (res)->type |= AR_TEXT, \ + (res)->text = (char *)(val) \ +) + +/* NOTE: always allocate new memory for val! DON'T USE STATIC OR STACK MEMORY!!! */ +#define SET_MSG_RESULT(res, val) \ +( \ + (res)->type |= AR_MESSAGE, \ + (res)->msg = (char *)(val) \ +) + +#endif |