summaryrefslogtreecommitdiff
path: root/src/plugins/imb/imbapi.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/imb/imbapi.c')
-rw-r--r--src/plugins/imb/imbapi.c201
1 files changed, 66 insertions, 135 deletions
diff --git a/src/plugins/imb/imbapi.c b/src/plugins/imb/imbapi.c
index 34c9c82..b27486d 100644
--- a/src/plugins/imb/imbapi.c
+++ b/src/plugins/imb/imbapi.c
@@ -60,11 +60,12 @@
#include "imbapi.h"
#include <sys/socket.h>
+#include <ipmitool/helper.h>
#include <ipmitool/log.h>
#ifdef SCO_UW
# define NO_MACRO_ARGS 1
-# define __FUNCTION__ "func"
+# define __func__ "func"
# define IMB_DEVICE "/dev/instru/mismic"
#else
# define IMB_DEVICE "/dev/imb"
@@ -117,7 +118,7 @@ open_imb(void)
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
- if (hDevice == NULL || hDevice == INVALID_HANDLE_VALUE) {
+ if (!hDevice || INVALID_HANDLE_VALUE == hDevice) {
return 0;
}
/* Detect the IPMI version for processing requests later. This
@@ -170,7 +171,7 @@ open_imb(void)
if (hDevice1 != 0) {
return 1;
}
- lprintf(LOG_DEBUG, "%s: opening the driver", __FUNCTION__);
+ lprintf(LOG_DEBUG, "%s: opening the driver", __func__);
/* printf("open_imb: "
"IOCTL_IMB_SEND_MESSAGE =%x \n" "IOCTL_IMB_GET_ASYNC_MSG=%x \n"
"IOCTL_IMB_MAP_MEMORY = %x \n" "IOCTL_IMB_UNMAP_MEMORY= %x \n"
@@ -192,7 +193,7 @@ open_imb(void)
if (fDriverTyp != 0) {
/* not 1st time */
sprintf(buf,"%s %s: open(%s) failed",
- __FILE__, __FUNCTION__, IMB_DEVICE);
+ __FILE__, __func__, IMB_DEVICE);
perror(buf);
}
return 0;
@@ -212,14 +213,14 @@ open_imb(void)
requestData.data = NULL;
requestData.dataLength = 0;
respLength = 16;
- lprintf(LOG_DEBUG, "%s: opened driver, getting IPMI version", __FUNCTION__);
+ lprintf(LOG_DEBUG, "%s: opened driver, getting IPMI version", __func__);
if (((my_ret_code = SendTimedImbpRequest(&requestData, (DWORD)400,
respBuffer,
(int *)&respLength,
&completionCode)) != ACCESN_OK)
|| (completionCode != 0)) {
printf("%s: SendTimedImbpRequest error. Ret = %d CC = 0x%X\n",
- __FUNCTION__, my_ret_code, completionCode);
+ __func__, my_ret_code, completionCode);
close(hDevice1);
hDevice1 = 0;
return 0;
@@ -233,7 +234,7 @@ open_imb(void)
IpmiVersion = IPMI_10_VERSION;
}
}
- lprintf(LOG_DEBUG, "%s: IPMI version 0x%x", __FUNCTION__,
+ lprintf(LOG_DEBUG, "%s: IPMI version 0x%x", __func__,
IpmiVersion);
return 1;
} /* end open_imb() */
@@ -281,11 +282,11 @@ ipmi_close_ia(void)
* @lpcbBytesReturned, address of actual bytes of output
* @lpoOverlapped address of overlapped struct
*
- * returns - FALSE for fail and TRUE for success. Same as standarad NTOS call as
+ * returns - FALSE for fail and TRUE for success. Same as standard NTOS call as
* it also sets Ntstatus.status.
*/
static BOOL
-DeviceIoControl(HANDLE dummey_hDevice, DWORD dwIoControlCode, LPVOID
+DeviceIoControl(HANDLE __UNUSED__(dummey_hDevice), DWORD dwIoControlCode, LPVOID
lpvInBuffer, DWORD cbInBuffer, LPVOID lpvOutBuffer,
DWORD cbOutBuffer, LPDWORD lpcbBytesReturned,
LPOVERLAPPED lpoOverlapped)
@@ -298,7 +299,7 @@ DeviceIoControl(HANDLE dummey_hDevice, DWORD dwIoControlCode, LPVOID
if (rc == 0) {
return FALSE;
}
- lprintf(LOG_DEBUG, "%s: ioctl cmd = 0x%lx", __FUNCTION__,
+ lprintf(LOG_DEBUG, "%s: ioctl cmd = 0x%lx", __func__,
dwIoControlCode);
lprintf(LOG_DEBUG, "cbInBuffer %d cbOutBuffer %d", cbInBuffer,
cbOutBuffer);
@@ -312,23 +313,23 @@ DeviceIoControl(HANDLE dummey_hDevice, DWORD dwIoControlCode, LPVOID
s.cbOutBuffer = cbOutBuffer;
s.lpcbBytesReturned = lpcbBytesReturned;
s.lpoOverlapped = lpoOverlapped;
- /* dummy place holder. Linux IMB driver doesnt return status or info
+ /* dummy place holder. Linux IMB driver doesn't return status or info
* via it
*/
s.ntstatus = (LPVOID)&NTstatus;
if ((ioctl_status = ioctl(hDevice1, dwIoControlCode,&s)) < 0) {
lprintf(LOG_DEBUG, "%s %s: ioctl cmd = 0x%x failed",
- __FILE__, __FUNCTION__, dwIoControlCode);
+ __FILE__, __func__, dwIoControlCode);
return FALSE;
}
lprintf(LOG_DEBUG, "%s: ioctl_status %d bytes returned = %d",
- __FUNCTION__, ioctl_status, *lpcbBytesReturned);
+ __func__, ioctl_status, *lpcbBytesReturned);
if (ioctl_status == STATUS_SUCCESS) {
- lprintf(LOG_DEBUG, "%s returning true", __FUNCTION__);
+ lprintf(LOG_DEBUG, "%s returning true", __func__);
return (TRUE);
} else {
- lprintf(LOG_DEBUG, "%s returning false", __FUNCTION__);
+ lprintf(LOG_DEBUG, "%s returning false", __func__);
return (FALSE);
}
}
@@ -341,12 +342,12 @@ StartAsyncMesgPoll()
DWORD retLength;
BOOL status;
lprintf(LOG_DEBUG, "%s: DeviceIoControl cmd = %x",
- __FUNCTION__, IOCTL_IMB_POLL_ASYNC);
+ __func__, IOCTL_IMB_POLL_ASYNC);
status = DeviceIoControl(hDevice, IOCTL_IMB_POLL_ASYNC, NULL, 0, NULL,
0, &retLength, 0);
- lprintf(LOG_DEBUG, "%s: DeviceIoControl status = %d", __FUNCTION__,
+ lprintf(LOG_DEBUG, "%s: DeviceIoControl status = %d", __func__,
status);
if (status == TRUE) {
return ACCESN_OK;
@@ -407,7 +408,7 @@ SendTimedI2cRequest(I2CREQUESTDATA *reqPtr, int timeOut, BYTE *respDataPtr,
status = DeviceIoControl(hDevice, IOCTL_IMB_SEND_MESSAGE, requestData,
sizeof(requestData), &responseData,
sizeof(responseData), &respLength, NULL);
- lprintf(LOG_DEBUG, "%s: DeviceIoControl status = %d", __FUNCTION__,
+ lprintf(LOG_DEBUG, "%s: DeviceIoControl status = %d", __func__,
status);
if (status != TRUE) {
DWORD error;
@@ -434,7 +435,7 @@ SendTimedI2cRequest(I2CREQUESTDATA *reqPtr, int timeOut, BYTE *respDataPtr,
* @responseDataLen
* @timeOut - how long to wait, in mSec units
*
- * retruns - OK else error status code
+ * returns - OK else error status code
*/
ACCESN_STATUS
SendTimedEmpMessageResponse (ImbPacket *ptr, char *responseDataBuf,
@@ -498,7 +499,7 @@ SendTimedEmpMessageResponse (ImbPacket *ptr, char *responseDataBuf,
status = DeviceIoControl(hDevice, IOCTL_IMB_SEND_MESSAGE, requestData,
sizeof(requestData), responseData, sizeof(responseData),
&respLength, NULL);
- lprintf(LOG_DEBUG, "%s: DeviceIoControl status = %d", __FUNCTION__,
+ lprintf(LOG_DEBUG, "%s: DeviceIoControl status = %d", __func__,
status);
if ((status != TRUE) || (respLength != 1) || (responseData[0] != 0)) {
return ACCESN_ERROR;
@@ -514,7 +515,7 @@ SendTimedEmpMessageResponse (ImbPacket *ptr, char *responseDataBuf,
* @timeOut - how long to wait, in mSec units
* @sessionHandle - This is introduced in IPMI1.5,this is required to be sent in
* sendd message command as a parameter, which is then used by BMC
- * to identify the correct DPC session to send the mesage to.
+ * to identify the correct DPC session to send the message to.
* @channelNumber - There are 3 different channels on which DPC communication
* goes on:
* * Emp - 1
@@ -591,7 +592,7 @@ SendTimedEmpMessageResponse_Ex (ImbPacket *ptr, char *responseDataBuf, int
req->req.data[i++] = ((ptr->seqLn & 0xfc) | (ptr->nfLn & 0x3));
/* The next byte is the command like get software ID(00). */
req->req.data[i++] = ptr->cmd;
- /* after the cmd the data, which is sent by DPC & is retrived using the
+ /* after the cmd the data, which is sent by DPC & is retrieved using the
* get message earlier is sent back to DPC.
*/
for (j = 0; j < responseDataLen; ++j, ++i) {
@@ -626,7 +627,7 @@ SendTimedEmpMessageResponse_Ex (ImbPacket *ptr, char *responseDataBuf, int
sizeof(requestData), responseData, sizeof(responseData),
&respLength, NULL);
- lprintf(LOG_DEBUG, "%s: DeviceIoControl status = %d", __FUNCTION__,
+ lprintf(LOG_DEBUG, "%s: DeviceIoControl status = %d", __func__,
status);
if ((status != TRUE) || (respLength != 1) || (responseData[0] != 0)) {
return ACCESN_ERROR;
@@ -711,7 +712,7 @@ SendTimedLanMessageResponse(ImbPacket *ptr, char *responseDataBuf,
sizeof(requestData), responseData, sizeof(responseData),
&respLength, NULL);
- lprintf(LOG_DEBUG, "%s: DeviceIoControl status = %d", __FUNCTION__,
+ lprintf(LOG_DEBUG, "%s: DeviceIoControl status = %d", __func__,
status);
if ((status != TRUE) || (respLength != 1) || (responseData[0] != 0)) {
return ACCESN_ERROR;
@@ -728,7 +729,7 @@ SendTimedLanMessageResponse(ImbPacket *ptr, char *responseDataBuf,
* @timeOut - how long to wait, in mSec units
* @sessionHandle - This is introduced in IPMI1.5,this is required to be sent in
* send message command as a parameter,which is then used by BMC to identify the
- * correct DPC session to send the mesage to.
+ * correct DPC session to send the message to.
* @channelNumber - There are 3 different channels on which DPC communication
* goes on:
* * Emp - 1
@@ -806,7 +807,7 @@ SendTimedLanMessageResponse_Ex(ImbPacket *ptr, char *responseDataBuf, int
req->req.data[i++] = ((ptr->seqLn & 0xfc) | (ptr->nfLn & 0x3));
/* The next byte is the command like get software ID(00). */
req->req.data[i++] = ptr->cmd;
- /* After the cmd the data ,which is sent by DPC & is retrived using the
+ /* After the cmd the data ,which is sent by DPC & is retrieved using the
* get message earlier is sent back to DPC.
*/
for (j = 0; j < responseDataLen; ++j, ++i) {
@@ -839,7 +840,7 @@ SendTimedLanMessageResponse_Ex(ImbPacket *ptr, char *responseDataBuf, int
status = DeviceIoControl(hDevice, IOCTL_IMB_SEND_MESSAGE, requestData,
sizeof(requestData), responseData, sizeof(responseData),
&respLength, NULL);
- lprintf(LOG_DEBUG, "%s: DeviceIoControl status = %d", __FUNCTION__,
+ lprintf(LOG_DEBUG, "%s: DeviceIoControl status = %d", __func__,
status);
if ((status != TRUE) || (respLength != 1) || (responseData[0] != 0)) {
return ACCESN_ERROR;
@@ -882,7 +883,7 @@ SendTimedImbpRequest(IMBPREQUESTDATA *reqPtr, int timeOut, BYTE *respDataPtr,
/* convert to uSec units */
req->timeOut = timeOut * 1000;
lprintf(LOG_DEBUG, "%s: rsSa 0x%x cmd 0x%x netFn 0x%x rsLun 0x%x",
- __FUNCTION__, req->req.rsSa, req->req.cmd,
+ __func__, req->req.rsSa, req->req.cmd,
req->req.netFn, req->req.rsLun);
status = DeviceIoControl(hDevice, IOCTL_IMB_SEND_MESSAGE, requestData,
@@ -890,11 +891,11 @@ SendTimedImbpRequest(IMBPREQUESTDATA *reqPtr, int timeOut, BYTE *respDataPtr,
sizeof(responseData), &respLength, NULL);
lprintf(LOG_DEBUG, "%s: DeviceIoControl returned status = %d",
- __FUNCTION__, status);
+ __func__, status);
#ifdef DBG_IPMI
/* TODO */
printf("%s: rsSa %x cmd %x netFn %x lun %x, status=%d, cc=%x, rlen=%d\n",
- __FUNCTION__, req->req.rsSa, req->req.cmd,
+ __func__, req->req.rsSa, req->req.cmd,
req->req.netFn, req->req.rsLun, status, resp->cCode,
respLength);
#endif
@@ -949,7 +950,7 @@ SendAsyncImbpRequest(IMBPREQUESTDATA *reqPtr, BYTE *seqNo)
sizeof(requestData), &responseData,
sizeof(responseData), &respLength, NULL);
- lprintf(LOG_DEBUG, "%s: DeviceIoControl status = %d", __FUNCTION__,
+ lprintf(LOG_DEBUG, "%s: DeviceIoControl status = %d", __func__,
status);
if (status != TRUE) {
DWORD error;
@@ -979,82 +980,12 @@ ACCESN_STATUS
GetAsyncImbpMessage (ImbPacket *msgPtr, DWORD *msgLen, DWORD timeOut,
ImbAsyncSeq *seqNo, DWORD channelNumber)
{
- BOOL status;
- BYTE responseData[MAX_ASYNC_RESP_SIZE];
- BYTE lun;
- ImbAsyncResponse *resp = (ImbAsyncResponse *)responseData;
- DWORD respLength = sizeof(responseData);
- ImbAsyncRequest req;
-
- while (1) {
- if ((msgPtr == NULL) || (msgLen == NULL) || ( seqNo == NULL)) {
- return ACCESN_ERROR;
- }
- /* convert to uSec units */
- req.timeOut = timeOut * 1000;
- req.lastSeq = *seqNo;
-
- status = DeviceIoControl(hDevice, IOCTL_IMB_GET_ASYNC_MSG, &req,
- sizeof(req), &responseData,
- sizeof(responseData), &respLength, NULL);
-
- lprintf(LOG_DEBUG, "%s: DeviceIoControl status = %d",
- __FUNCTION__, status);
- if (status != TRUE) {
- DWORD error = GetLastError();
- /* handle "msg not available" specially. it is different
- * from a random old error.
- */
- switch (error) {
- case IMB_MSG_NOT_AVAILABLE:
- return ACCESN_END_OF_DATA;
- break;
- default:
- return ACCESN_ERROR;
- break;
- }
- } else if (respLength < MIN_ASYNC_RESP_SIZE) {
- return ACCESN_ERROR;
- }
- respLength -= MIN_ASYNC_RESP_SIZE;
-
- if (*msgLen < respLength) {
- return ACCESN_ERROR;
- }
-
- /* same code as in NT section */
- if (IpmiVersion == IPMI_09_VERSION) {
- switch (channelNumber) {
- case IPMB_CHANNEL:
- lun = IPMB_LUN;
- break;
- case EMP_CHANNEL:
- lun = EMP_LUN;
- break;
- default:
- lun = RESERVED_LUN;
- break;
- }
- if ((lun == RESERVED_LUN)
- || (lun != ((((ImbPacket *)(resp->data))->nfLn) & 0x3 ))) {
- *seqNo = resp->thisSeq;
- continue;
- }
- memcpy(msgPtr, resp->data, respLength);
- *msgLen = respLength;
- } else {
- /* it is version 1.0 or better */
- if (resp->data[0] != (BYTE)channelNumber) {
- *seqNo = resp->thisSeq;
- continue;
- }
- memcpy(msgPtr, &(resp->data[1]), (respLength - 1));
- *msgLen = respLength - 1;
- }
- /* give the caller his sequence number */
- *seqNo = resp->thisSeq;
- return ACCESN_OK;
- }
+ /* This function does exactly the same as GetAsuncImbpMessage_Ex(),
+ * but doesn't return session handle and privilege
+ */
+ return GetAsyncImbpMessage_Ex(msgPtr, msgLen, timeOut,
+ seqNo, channelNumber,
+ NULL, NULL);
}
/* GetAsyncImbpMessage_Ex - gets the next available async message with a message
@@ -1084,7 +1015,7 @@ GetAsyncImbpMessage_Ex(ImbPacket *msgPtr, DWORD *msgLen, DWORD timeOut,
ImbAsyncRequest req;
while (1) {
- if ((msgPtr == NULL) || (msgLen == NULL) || ( seqNo == NULL)) {
+ if (!msgPtr || !msgLen || !seqNo) {
return ACCESN_ERROR;
}
@@ -1096,7 +1027,7 @@ GetAsyncImbpMessage_Ex(ImbPacket *msgPtr, DWORD *msgLen, DWORD timeOut,
sizeof(responseData), &respLength, NULL);
lprintf(LOG_DEBUG, "%s: DeviceIoControl status = %d",
- __FUNCTION__, status);
+ __func__, status);
if (status != TRUE) {
DWORD error = GetLastError();
/* handle "msg not available" specially. it is
@@ -1110,12 +1041,12 @@ GetAsyncImbpMessage_Ex(ImbPacket *msgPtr, DWORD *msgLen, DWORD timeOut,
return ACCESN_ERROR;
break;
}
- }
- if (respLength < MIN_ASYNC_RESP_SIZE) {
+ } else if (respLength < MIN_ASYNC_RESP_SIZE) {
return ACCESN_ERROR;
}
respLength -= MIN_ASYNC_RESP_SIZE;
+
if (*msgLen < respLength) {
return ACCESN_ERROR;
}
@@ -1143,26 +1074,26 @@ GetAsyncImbpMessage_Ex(ImbPacket *msgPtr, DWORD *msgLen, DWORD timeOut,
memcpy(msgPtr, resp->data, respLength);
*msgLen = respLength;
} else {
- if ((sessionHandle ==NULL) || (privilege ==NULL)) {
- return ACCESN_ERROR;
+ /* it is version 1.0 or better */
+ if ((resp->data[0] & 0x0f) != (BYTE)channelNumber) {
+ *seqNo = resp->thisSeq;
+ continue;
}
/* With the new IPMI version the get message command
* returns the channel number along with the
- * privileges.The 1st 4 bits of the second byte of the
+ * privileges. The 1st 4 bits of the second byte of the
* response data for get message command represent the
* channel number & the last 4 bits are the privileges.
*/
- *privilege = (resp->data[0] & 0xf0)>> 4;
- if ((resp->data[0] & 0x0f) != (BYTE)channelNumber) {
- *seqNo = resp->thisSeq;
- continue;
+ if (sessionHandle && privilege) {
+ *privilege = (resp->data[0] & 0xf0) >> 4;
+ /* The get message command according to IPMI 1.5 spec
+ * now even returns the session handle. This is required
+ * to be captured as it is required as request data for
+ * send message command.
+ */
+ *sessionHandle = resp->data[1];
}
- /* The get message command according to IPMI 1.5 spec
- * now even returns the session handle.This is required
- * to be captured as it is required as request data for
- * send message command.
- */
- *sessionHandle = resp->data[1];
memcpy(msgPtr, &(resp->data[2]), (respLength - 1));
*msgLen = respLength - 1;
}
@@ -1194,7 +1125,7 @@ IsAsyncMessageAvailable(unsigned int eventId)
status = DeviceIoControl(hDevice, IOCTL_IMB_CHECK_EVENT,
&AsyncEventHandle, sizeof(HANDLE), &dummy, sizeof(int),
(LPDWORD)&respLength, NULL);
- lprintf(LOG_DEBUG, "%s: DeviceIoControl status = %d", __FUNCTION__,
+ lprintf(LOG_DEBUG, "%s: DeviceIoControl status = %d", __func__,
status);
if (status != TRUE) {
return ACCESN_ERROR;
@@ -1220,13 +1151,13 @@ RegisterForImbAsyncMessageNotification(unsigned int *handleId)
DWORD respLength ;
int dummy;
/*allow only one app to register */
- if ((handleId == NULL ) || (AsyncEventHandle)) {
+ if (!handleId || AsyncEventHandle) {
return ACCESN_ERROR;
}
status = DeviceIoControl(hDevice, IOCTL_IMB_REGISTER_ASYNC_OBJ, &dummy,
sizeof(int), &AsyncEventHandle, (DWORD)sizeof(HANDLE),
(LPDWORD)&respLength, NULL);
- lprintf(LOG_DEBUG, "%s: DeviceIoControl status = %d", __FUNCTION__,
+ lprintf(LOG_DEBUG, "%s: DeviceIoControl status = %d", __func__,
status);
if ((respLength != sizeof(int)) || (status != TRUE)) {
return ACCESN_ERROR;
@@ -1265,7 +1196,7 @@ UnRegisterForImbAsyncMessageNotification(unsigned int handleId, int iFlag)
status = DeviceIoControl(hDevice, IOCTL_IMB_DEREGISTER_ASYNC_OBJ,
&AsyncEventHandle, (DWORD)sizeof(HANDLE ), &dummy,
(DWORD)sizeof(int), (LPDWORD)&respLength, NULL );
- lprintf(LOG_DEBUG, "%s: DeviceIoControl status = %d", __FUNCTION__,
+ lprintf(LOG_DEBUG, "%s: DeviceIoControl status = %d", __func__,
status);
if (status != TRUE) {
return ACCESN_ERROR;
@@ -1295,7 +1226,7 @@ SetShutDownCode(int delayTime, int code)
cmd.delayTime = delayTime;
status = DeviceIoControl(hDevice, IOCTL_IMB_SHUTDOWN_CODE, &cmd,
sizeof(cmd), NULL, 0, &retLength, NULL);
- lprintf(LOG_DEBUG, "%s: DeviceIoControl status = %d", __FUNCTION__,
+ lprintf(LOG_DEBUG, "%s: DeviceIoControl status = %d", __func__,
status);
if (status == TRUE) {
return ACCESN_OK;
@@ -1402,7 +1333,7 @@ MapPhysicalMemory(int startAddress, int addressLength, int *virtualAddress)
if ((fd = open("/dev/mem", O_RDONLY)) < 0) {
char buf[128];
sprintf(buf,"%s %s: open(%s) failed",
- __FILE__, __FUNCTION__, IMB_DEVICE);
+ __FILE__, __func__, IMB_DEVICE);
perror(buf);
return ACCESN_ERROR;
}
@@ -1413,12 +1344,12 @@ MapPhysicalMemory(int startAddress, int addressLength, int *virtualAddress)
if ((startvAddress = mmap(0, length, PROT_READ, MAP_SHARED, fd,
startpAddress)) == MAP_FAILED) {
char buf[128];
- sprintf(buf, "%s %s: mmap failed", __FILE__, __FUNCTION__);
+ sprintf(buf, "%s %s: mmap failed", __FILE__, __func__);
perror(buf);
close(fd);
return ACCESN_ERROR;
}
- lprintf(LOG_DEBUG, "%s: mmap of 0x%x success", __FUNCTION__,
+ lprintf(LOG_DEBUG, "%s: mmap of 0x%x success", __func__,
startpAddress);
#ifdef LINUX_DEBUG_MAX
for (int i = 0; i < length; i++) {
@@ -1451,15 +1382,15 @@ UnmapPhysicalMemory(int virtualAddress, int Length)
diff = ((unsigned int)virtualAddress) % pagesize;
virtualAddress -= diff;
Length += diff;
- lprintf(LOG_DEBUG, "%s: calling munmap(0x%x,%d)", __FUNCTION__,
+ lprintf(LOG_DEBUG, "%s: calling munmap(0x%x,%d)", __func__,
virtualAddress,Length);
if (munmap(&virtualAddress, Length) != 0) {
char buf[128];
- sprintf(buf, "%s %s: munmap failed", __FILE__, __FUNCTION__);
+ sprintf(buf, "%s %s: munmap failed", __FILE__, __func__);
perror(buf);
return ACCESN_ERROR;
}
- lprintf(LOG_DEBUG, "%s: munmap(0x%x,%d) success", __FUNCTION__,
+ lprintf(LOG_DEBUG, "%s: munmap(0x%x,%d) success", __func__,
virtualAddress, Length);
return ACCESN_OK;
}