📄 hpcfsrpc.c
字号:
/* hpcFsRpc.c - Simple "RPC" protocol for HPCFS *//* Copyright 1996-1998 Wind River Systems, Inc.; Copyright 2000 Intel Corp. *//*modification history--------------------01a,29Jun00,jdg written*//*DESCRIPTIONThis library provides a very simple implementation of RPC for use by the HPCFS*/#include "hpcFsRpc.h"/********************************************************************************* hpcRpcWrInt - Writes a 32-bit int into a buffer** This routine writes a 32-bit int into a buffer and returns* the new buffer pointer** RETURNS: new buffer pointer*/char* hpcRpcWrInt( char *buf, /* buffer pointer */ int data /* 32-bit int to be written into buffer */){ *buf++ = (data >> 0) & 0xFF; *buf++ = (data >> 8) & 0xFF; *buf++ = (data >> 16) & 0xFF; *buf++ = (data >> 24) & 0xFF; return buf;}/********************************************************************************* hpcRpcWrCStr - Writes a C string into a buffer** This routine writes a C string into a buffer and returns* the new buffer pointer** RETURNS: new buffer pointer*/char* hpcRpcWrCStr( char *buf, /* buffer pointer */ char *str /* C string */){ while (*str) { *buf++ = *str++; } *buf++ = 0; return buf;}/********************************************************************************* hpcRpcWrData - Writes a block of data into a buffer** This routine writes a block of data into a buffer and returns* the new buffer pointer** RETURNS: new buffer pointer*/char* hpcRpcWrData( char *buf, /* buffer pointer */ char *data, /* data block */ int data_len /* length of data */){ buf = hpcRpcWrInt(buf, data_len); for (; data_len > 0; data_len--) *buf++ = *data++; return buf;}/********************************************************************************* hpcRpcRdInt - Reads a 32-bit int into a buffer** This routine reads a 32-bit int from a buffer and returns* the new buffer pointer** RETURNS: new buffer pointer*/char* hpcRpcRdInt( char *buf, /* buffer pointer */ int *data /* 32-bit int to be written into buffer */){ int d; unsigned char *b = (unsigned char*)buf; d = *b++; d |= (*b++) << 8; d |= (*b++) << 16; d |= (*b++) << 24; *data = d; return (char*) b;}/********************************************************************************* hpcRpcRdCStr - Reads a C string from a buffer** This routine reads a C string from a buffer and returns* the new buffer pointer** RETURNS: new buffer pointer*/char* hpcRpcRdCStr( char *buf, /* buffer pointer */ char *str /* C string */){ while (*buf) { *str++ = *buf++; } *str = 0; return buf+1;}/********************************************************************************* hpcRpcGetCStr - Reads a C string from a buffer** This routine reads a C string from a buffer and returns* the new buffer pointer. The string read resides in the original buffer,* it does not get copied to a user buffer.** RETURNS: new buffer pointer*/char* hpcRpcGetCStr( char *buf, /* buffer pointer */ char **str /* pointer to C string */){ *str = buf; while (*buf) { buf++; } return buf+1;}/********************************************************************************* hpcRpcRdData - Reads a block of data into a buffer** This routine reads a block of data into a buffer and returns* the new buffer pointer** RETURNS: new buffer pointer*/char* hpcRpcRdData( char *buf, /* buffer pointer */ char *data, /* data block */ int *data_len /* length of data */){ int dl; buf = hpcRpcRdInt(buf, &dl); *data_len = dl; for (; dl > 0; dl--) *data++ = *buf++; return buf;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -