blob: c86997f5d36797e777ca1d16b0040a8bf8c42c58 [file] [log] [blame]
vishwabmcba0bd5f2015-09-30 16:50:23 +05301#include "apphandler.h"
2#include "ipmid-api.h"
3#include <stdio.h>
4#include <string.h>
5
6void register_netfn_app_cap_bit() __attribute__((constructor));
7void register_netfn_app_wildcard() __attribute__((constructor));
8
9ipmi_ret_t ipmi_app_cap_bit_handler(ipmi_netfn_t netfn, ipmi_cmd_t cmd,
10 ipmi_request_t request, ipmi_response_t response,
11 ipmi_data_len_t data_len, ipmi_context_t context)
12{
13 printf("Handling Netfn:[0x%X], Cmd:[0x%X]\n",netfn,cmd);
14
15 // Status code.
16 ipmi_ret_t rc = IPMI_CC_OK;
17
18 unsigned char str[] = {0x00, 0x01, 0xFE, 0xFF, 0x0A, 0x01};
19
20 // Data length
21 *data_len = sizeof(str);
22
23 // Pack the actual response
24 memcpy(response, &str, *data_len);
25
26 return rc;
27}
28
29ipmi_ret_t ipmi_app_wildcard_handler(ipmi_netfn_t netfn, ipmi_cmd_t cmd,
30 ipmi_request_t request, ipmi_response_t response,
31 ipmi_data_len_t data_len, ipmi_context_t context)
32{
33 printf("Handling WILDCARD Netfn:[0x%X], Cmd:[0x%X]\n",netfn, cmd);
34
35 // Status code.
36 ipmi_ret_t rc = IPMI_CC_OK;
37
38 *data_len = strlen("THIS IS WILDCARD");
39
40 // Now pack actual response
41 memcpy(response, "THIS IS WILDCARD", *data_len);
42
43 return rc;
44}
45
46void register_netfn_app_cap_bit()
47{
48 printf("Registering NetFn:[0x%X], Cmd:[0x%X]\n",NETFUN_APP, IPMI_CMD_GET_CAP_BIT);
49 ipmi_register_callback(NETFUN_APP, IPMI_CMD_GET_CAP_BIT, NULL, ipmi_app_cap_bit_handler);
50 return;
51}
52
53void register_netfn_app_wildcard()
54{
55 printf("Registering NetFn:[0x%X], Cmd:[0x%X]\n",NETFUN_APP, IPMI_CMD_WILDCARD);
56 ipmi_register_callback(NETFUN_APP, IPMI_CMD_WILDCARD, NULL, ipmi_app_wildcard_handler);
57 return;
58}