Postfix3.3.1
全て データ構造 ファイル 関数 変数 型定義 マクロ定義
データ構造 | マクロ定義 | 型定義 | 関数
mymalloc.c ファイル
#include "sys_defs.h"
#include <stdlib.h>
#include <stddef.h>
#include <string.h>
#include "msg.h"
#include "mymalloc.h"

[ソースコード]

データ構造

struct  MBLOCK
 

マクロ定義

#define SIGNATURE   0xdead
 
#define FILLER   0xff
 
#define CHECK_IN_PTR(ptr, real_ptr, len, fname)
 
#define CHECK_OUT_PTR(ptr, real_ptr, len)
 
#define SPACE_FOR(len)   (offsetof(MBLOCK, u.payload[0]) + len)
 

型定義

typedef struct MBLOCK MBLOCK
 

関数

void * mymalloc (ssize_t len)
 
void * myrealloc (void *ptr, ssize_t len)
 
void myfree (void *ptr)
 
char * mystrdup (const char *str)
 
char * mystrndup (const char *str, ssize_t len)
 
char * mymemdup (const void *ptr, ssize_t len)
 

マクロ定義詳解

#define CHECK_IN_PTR (   ptr,
  real_ptr,
  len,
  fname 
)
値:
{ \
if (ptr == 0) \
msg_panic("%s: null pointer input", fname); \
real_ptr = (MBLOCK *) (ptr - offsetof(MBLOCK, u.payload[0])); \
if (real_ptr->signature != SIGNATURE) \
msg_panic("%s: corrupt or unallocated memory block", fname); \
real_ptr->signature = 0; \
if ((len = real_ptr->length) < 1) \
msg_panic("%s: corrupt memory block length", fname); \
}
NORETURN msg_panic(const char *fmt,...)
Definition: msg.c:295
char payload[1]
Definition: mymalloc.c:106
#define SIGNATURE
Definition: mymalloc.c:110

mymalloc.c113 行目に定義があります。

#define CHECK_OUT_PTR (   ptr,
  real_ptr,
  len 
)
値:
{ \
real_ptr->signature = SIGNATURE; \
real_ptr->length = len; \
ptr = real_ptr->u.payload; \
}
#define SIGNATURE
Definition: mymalloc.c:110

mymalloc.c124 行目に定義があります。

#define FILLER   0xff

mymalloc.c111 行目に定義があります。

#define SIGNATURE   0xdead

mymalloc.c110 行目に定義があります。

#define SPACE_FOR (   len)    (offsetof(MBLOCK, u.payload[0]) + len)

mymalloc.c130 行目に定義があります。

型定義詳解

typedef struct MBLOCK MBLOCK

関数詳解

void myfree ( void *  ptr)

mymalloc.c207 行目に定義があります。

void* mymalloc ( ssize_t  len)

mymalloc.c150 行目に定義があります。

char* mymemdup ( const void *  ptr,
ssize_t  len 
)

mymalloc.c264 行目に定義があります。

void* myrealloc ( void *  ptr,
ssize_t  len 
)

mymalloc.c175 行目に定義があります。

char* mystrdup ( const char *  str)

mymalloc.c225 行目に定義があります。

char* mystrndup ( const char *  str,
ssize_t  len 
)

mymalloc.c242 行目に定義があります。