Consolidate the two malloc()s that are done when allocating

an mbuf.
This commit is contained in:
Brian Somers 1998-08-21 18:10:15 +00:00
parent 3f37462e61
commit 9773f8c0c8
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=38472
3 changed files with 13 additions and 20 deletions

View File

@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: log.c,v 1.33 1998/08/07 18:42:49 brian Exp $
* $Id: log.c,v 1.34 1998/08/09 15:34:11 brian Exp $
*/
#include <sys/types.h>
@ -324,12 +324,12 @@ log_Printf(int lev, const char *fmt,...)
}
void
log_DumpBp(int lev, const char *hdr, const struct mbuf * bp)
log_DumpBp(int lev, const char *hdr, const struct mbuf *bp)
{
if (log_IsKept(lev)) {
char buf[50];
char *b;
u_char *ptr;
const u_char *ptr;
int f;
if (hdr && *hdr)
@ -338,7 +338,7 @@ log_DumpBp(int lev, const char *hdr, const struct mbuf * bp)
b = buf;
do {
f = bp->cnt;
ptr = MBUF_CTOP(bp);
ptr = CONST_MBUF_CTOP(bp);
while (f--) {
sprintf(b, " %02x", (int) *ptr++);
b += 3;

View File

@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
* $Id: mbuf.c,v 1.19 1998/08/07 18:42:50 brian Exp $
* $Id: mbuf.c,v 1.20 1998/08/21 18:09:57 brian Exp $
*
*/
#include <sys/types.h>
@ -56,27 +56,20 @@ mbuf_Length(struct mbuf * bp)
struct mbuf *
mbuf_Alloc(int cnt, int type)
{
u_char *p;
struct mbuf *bp;
if (type > MB_MAX)
log_Printf(LogERROR, "Bad mbuf type %d\n", type);
bp = (struct mbuf *) malloc(sizeof(struct mbuf));
bp = malloc(sizeof(struct mbuf) + cnt);
if (bp == NULL) {
log_Printf(LogALERT, "failed to allocate memory: %ld\n",
(long)sizeof(struct mbuf));
AbortProgram(EX_OSERR);
}
memset(bp, '\0', sizeof(struct mbuf));
p = (u_char *) malloc(cnt);
if (p == NULL) {
log_Printf(LogALERT, "failed to allocate memory: %d\n", cnt);
AbortProgram(EX_OSERR);
}
MemMap[type].fragments++;
MemMap[type].octets += cnt;
totalalloced += cnt;
bp->base = p;
bp->size = bp->cnt = cnt;
bp->type = type;
bp->pnext = NULL;
@ -93,7 +86,6 @@ mbuf_FreeSeg(struct mbuf * bp)
MemMap[bp->type].fragments--;
MemMap[bp->type].octets -= bp->size;
totalalloced -= bp->size;
free(bp->base);
free(bp);
return (nbp);
}

View File

@ -15,19 +15,19 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
* $Id: mbuf.h,v 1.12 1998/05/21 21:46:49 brian Exp $
* $Id: mbuf.h,v 1.13 1998/08/07 18:42:50 brian Exp $
*
* TODO:
*/
struct mbuf {
u_char *base; /* pointer to top of buffer space */
short size; /* size allocated from base */
short offset; /* offset to start position */
short size; /* size allocated (excluding header) */
short offset; /* offset from header end to start position */
short cnt; /* available byte count in buffer */
short type;
short type; /* MB_* below */
struct mbuf *next; /* link to next mbuf */
struct mbuf *pnext; /* link to next packet */
/* buffer space is malloc()d directly after the header */
};
struct mqueue {
@ -36,7 +36,8 @@ struct mqueue {
int qlen;
};
#define MBUF_CTOP(bp) (bp->base + bp->offset)
#define MBUF_CTOP(bp) ((u_char *)((bp)+1) + (bp)->offset)
#define CONST_MBUF_CTOP(bp) ((const u_char *)((bp)+1) + (bp)->offset)
#define MB_ASYNC 1
#define MB_FSM 2