Postfix3.3.1
データ構造 | マクロ定義 | 型定義 | 関数
vbuf.h ファイル

[ソースコード]

データ構造

struct  VBUF
 

マクロ定義

#define VBUF_TO_APPL(vbuf_ptr, app_type, vbuf_member)   ((app_type *) (((char *) (vbuf_ptr)) - offsetof(app_type,vbuf_member)))
 
#define VBUF_FLAG_RD_ERR   (1<<0) /* read error */
 
#define VBUF_FLAG_WR_ERR   (1<<1) /* write error */
 
#define VBUF_FLAG_ERR   (VBUF_FLAG_RD_ERR | VBUF_FLAG_WR_ERR)
 
#define VBUF_FLAG_EOF   (1<<2) /* end of data */
 
#define VBUF_FLAG_RD_TIMEOUT   (1<<3) /* read timeout */
 
#define VBUF_FLAG_WR_TIMEOUT   (1<<4) /* write timeout */
 
#define VBUF_FLAG_TIMEOUT   (VBUF_FLAG_RD_TIMEOUT | VBUF_FLAG_WR_TIMEOUT)
 
#define VBUF_FLAG_BAD   (VBUF_FLAG_ERR | VBUF_FLAG_EOF | VBUF_FLAG_TIMEOUT)
 
#define VBUF_FLAG_FIXED   (1<<5) /* fixed-size buffer */
 
#define vbuf_rd_error(v)   ((v)->flags & (VBUF_FLAG_RD_ERR | VBUF_FLAG_RD_TIMEOUT))
 
#define vbuf_wr_error(v)   ((v)->flags & (VBUF_FLAG_WR_ERR | VBUF_FLAG_WR_TIMEOUT))
 
#define vbuf_rd_timeout(v)   ((v)->flags & VBUF_FLAG_RD_TIMEOUT)
 
#define vbuf_wr_timeout(v)   ((v)->flags & VBUF_FLAG_WR_TIMEOUT)
 
#define vbuf_error(v)   ((v)->flags & (VBUF_FLAG_ERR | VBUF_FLAG_TIMEOUT))
 
#define vbuf_eof(v)   ((v)->flags & VBUF_FLAG_EOF)
 
#define vbuf_timeout(v)   ((v)->flags & VBUF_FLAG_TIMEOUT)
 
#define vbuf_clearerr(v)   ((v)->flags &= ~VBUF_FLAG_BAD)
 
#define VBUF_GET(v)
 
#define VBUF_PUT(v, c)
 
#define VBUF_SPACE(v, n)   ((v)->space((v),(n)))
 
#define VBUF_EOF   (-1) /* no more space or data */
 

型定義

typedef struct VBUF VBUF
 
typedef int(* VBUF_GET_READY_FN) (VBUF *)
 
typedef int(* VBUF_PUT_READY_FN) (VBUF *)
 
typedef int(* VBUF_SPACE_FN) (VBUF *, ssize_t)
 

関数

int vbuf_get (VBUF *)
 
int vbuf_put (VBUF *, int)
 
int vbuf_unget (VBUF *, int)
 
ssize_t vbuf_read (VBUF *, void *, ssize_t)
 
ssize_t vbuf_write (VBUF *, const void *, ssize_t)
 

マクロ定義詳解

#define vbuf_clearerr (   v)    ((v)->flags &= ~VBUF_FLAG_BAD)

vbuf.h80 行目に定義があります。

#define vbuf_eof (   v)    ((v)->flags & VBUF_FLAG_EOF)

vbuf.h78 行目に定義があります。

#define VBUF_EOF   (-1) /* no more space or data */

vbuf.h91 行目に定義があります。

#define vbuf_error (   v)    ((v)->flags & (VBUF_FLAG_ERR | VBUF_FLAG_TIMEOUT))

vbuf.h77 行目に定義があります。

#define VBUF_FLAG_BAD   (VBUF_FLAG_ERR | VBUF_FLAG_EOF | VBUF_FLAG_TIMEOUT)

vbuf.h69 行目に定義があります。

#define VBUF_FLAG_EOF   (1<<2) /* end of data */

vbuf.h65 行目に定義があります。

#define VBUF_FLAG_ERR   (VBUF_FLAG_RD_ERR | VBUF_FLAG_WR_ERR)

vbuf.h64 行目に定義があります。

#define VBUF_FLAG_FIXED   (1<<5) /* fixed-size buffer */

vbuf.h70 行目に定義があります。

#define VBUF_FLAG_RD_ERR   (1<<0) /* read error */

vbuf.h62 行目に定義があります。

#define VBUF_FLAG_RD_TIMEOUT   (1<<3) /* read timeout */

vbuf.h66 行目に定義があります。

#define VBUF_FLAG_TIMEOUT   (VBUF_FLAG_RD_TIMEOUT | VBUF_FLAG_WR_TIMEOUT)

vbuf.h68 行目に定義があります。

#define VBUF_FLAG_WR_ERR   (1<<1) /* write error */

vbuf.h63 行目に定義があります。

#define VBUF_FLAG_WR_TIMEOUT   (1<<4) /* write timeout */

vbuf.h67 行目に定義があります。

#define VBUF_GET (   v)
値:
((v)->cnt < 0 ? ++(v)->cnt, \
(int) *(v)->ptr++ : vbuf_get(v))
int int
Definition: smtpd_proxy.h:21
int vbuf_get(VBUF *)
Definition: vbuf.c:170

vbuf.h85 行目に定義があります。

#define VBUF_PUT (   v,
 
)
値:
((v)->cnt > 0 ? --(v)->cnt, \
(int) (*(v)->ptr++ = (c)) : vbuf_put((v),(c)))
int vbuf_put(VBUF *, int)
Definition: vbuf.c:177
int int
Definition: smtpd_proxy.h:21

vbuf.h87 行目に定義があります。

#define vbuf_rd_error (   v)    ((v)->flags & (VBUF_FLAG_RD_ERR | VBUF_FLAG_RD_TIMEOUT))

vbuf.h72 行目に定義があります。

#define vbuf_rd_timeout (   v)    ((v)->flags & VBUF_FLAG_RD_TIMEOUT)

vbuf.h74 行目に定義があります。

#define VBUF_SPACE (   v,
 
)    ((v)->space((v),(n)))

vbuf.h89 行目に定義があります。

#define vbuf_timeout (   v)    ((v)->flags & VBUF_FLAG_TIMEOUT)

vbuf.h79 行目に定義があります。

#define VBUF_TO_APPL (   vbuf_ptr,
  app_type,
  vbuf_member 
)    ((app_type *) (((char *) (vbuf_ptr)) - offsetof(app_type,vbuf_member)))

vbuf.h56 行目に定義があります。

#define vbuf_wr_error (   v)    ((v)->flags & (VBUF_FLAG_WR_ERR | VBUF_FLAG_WR_TIMEOUT))

vbuf.h73 行目に定義があります。

#define vbuf_wr_timeout (   v)    ((v)->flags & VBUF_FLAG_WR_TIMEOUT)

vbuf.h75 行目に定義があります。

型定義詳解

typedef struct VBUF VBUF

vbuf.h32 行目に定義があります。

typedef int(* VBUF_GET_READY_FN) (VBUF *)

vbuf.h33 行目に定義があります。

typedef int(* VBUF_PUT_READY_FN) (VBUF *)

vbuf.h34 行目に定義があります。

typedef int(* VBUF_SPACE_FN) (VBUF *, ssize_t)

vbuf.h35 行目に定義があります。

関数詳解

int vbuf_get ( VBUF )

vbuf.c170 行目に定義があります。

int vbuf_put ( VBUF ,
int   
)

vbuf.c177 行目に定義があります。

ssize_t vbuf_read ( VBUF ,
void *  ,
ssize_t   
)

vbuf.c184 行目に定義があります。

int vbuf_unget ( VBUF ,
int   
)

vbuf.c156 行目に定義があります。

ssize_t vbuf_write ( VBUF ,
const void *  ,
ssize_t   
)

vbuf.c210 行目に定義があります。