Postfix3.3.1
データ構造 | マクロ定義 | 型定義 | 関数
events.c ファイル
#include "sys_defs.h"
#include <sys/time.h>
#include <time.h>
#include <errno.h>
#include <unistd.h>
#include <stddef.h>
#include <string.h>
#include <limits.h>
#include "mymalloc.h"
#include "msg.h"
#include "iostuff.h"
#include "ring.h"
#include "events.h"

[ソースコード]

データ構造

struct  EVENT_FDTABLE
 
struct  EVENT_TIMER
 

マクロ定義

#define EVENT_ALLOC_INCR   10
 
#define EVENT_MASK_BYTE_COUNT(mask)   sizeof(*(mask))
 
#define EVENT_MASK_ZERO(mask)   FD_ZERO(mask)
 
#define EVENT_MASK_SET(fd, mask)   FD_SET((fd), (mask))
 
#define EVENT_MASK_ISSET(fd, mask)   FD_ISSET((fd), (mask))
 
#define EVENT_MASK_CLR(fd, mask)   FD_CLR((fd), (mask))
 
#define EVENT_MASK_CMP(m1, m2)   memcmp((m1), (m2), EVENT_MASK_BYTE_COUNT(m1))
 
#define RING_TO_TIMER(r)   ((EVENT_TIMER *) ((void *) (r) - offsetof(EVENT_TIMER, ring)))
 
#define FOREACH_QUEUE_ENTRY(entry, head)   for (entry = ring_succ(head); entry != (head); entry = ring_succ(entry))
 
#define FIRST_TIMER(head)   (ring_succ(head) != (head) ? RING_TO_TIMER(ring_succ(head)) : 0)
 
#define EVENT_INIT_NEEDED()   (event_present == 0)
 

型定義

typedef fd_set EVENT_MASK
 
typedef struct EVENT_FDTABLE EVENT_FDTABLE
 
typedef struct EVENT_TIMER EVENT_TIMER
 

関数

time_t event_time (void)
 
void event_drain (int time_limit)
 
void event_fork (void)
 
void event_enable_read (int fd, EVENT_NOTIFY_RDWR_FN callback, void *context)
 
void event_enable_write (int fd, EVENT_NOTIFY_RDWR_FN callback, void *context)
 
void event_disable_readwrite (int fd)
 
time_t event_request_timer (EVENT_NOTIFY_TIME_FN callback, void *context, int delay)
 
int event_cancel_timer (EVENT_NOTIFY_TIME_FN callback, void *context)
 
void event_loop (int delay)
 

マクロ定義詳解

#define EVENT_ALLOC_INCR   10

events.c173 行目に定義があります。

#define EVENT_INIT_NEEDED ( )    (event_present == 0)

events.c537 行目に定義があります。

#define EVENT_MASK_BYTE_COUNT (   mask)    sizeof(*(mask))

events.c178 行目に定義があります。

#define EVENT_MASK_CLR (   fd,
  mask 
)    FD_CLR((fd), (mask))

events.c182 行目に定義があります。

#define EVENT_MASK_CMP (   m1,
  m2 
)    memcmp((m1), (m2), EVENT_MASK_BYTE_COUNT(m1))

events.c183 行目に定義があります。

#define EVENT_MASK_ISSET (   fd,
  mask 
)    FD_ISSET((fd), (mask))

events.c181 行目に定義があります。

#define EVENT_MASK_SET (   fd,
  mask 
)    FD_SET((fd), (mask))

events.c180 行目に定義があります。

#define EVENT_MASK_ZERO (   mask)    FD_ZERO(mask)

events.c179 行目に定義があります。

#define FIRST_TIMER (   head)    (ring_succ(head) != (head) ? RING_TO_TIMER(ring_succ(head)) : 0)

events.c529 行目に定義があります。

#define FOREACH_QUEUE_ENTRY (   entry,
  head 
)    for (entry = ring_succ(head); entry != (head); entry = ring_succ(entry))

events.c526 行目に定義があります。

#define RING_TO_TIMER (   r)    ((EVENT_TIMER *) ((void *) (r) - offsetof(EVENT_TIMER, ring)))

events.c523 行目に定義があります。

型定義詳解

typedef struct EVENT_FDTABLE EVENT_FDTABLE

events.c237 行目に定義があります。

typedef fd_set EVENT_MASK

events.c176 行目に定義があります。

typedef struct EVENT_TIMER EVENT_TIMER

events.c510 行目に定義があります。

関数詳解

int event_cancel_timer ( EVENT_NOTIFY_TIME_FN  callback,
void *  context 
)

events.c965 行目に定義があります。

void event_disable_readwrite ( int  fd)

events.c839 行目に定義があります。

void event_drain ( int  time_limit)

events.c657 行目に定義があります。

void event_enable_read ( int  fd,
EVENT_NOTIFY_RDWR_FN  callback,
void *  context 
)

events.c729 行目に定義があります。

void event_enable_write ( int  fd,
EVENT_NOTIFY_RDWR_FN  callback,
void *  context 
)

events.c784 行目に定義があります。

void event_fork ( void  )

events.c689 行目に定義があります。

void event_loop ( int  delay)

events.c998 行目に定義があります。

time_t event_request_timer ( EVENT_NOTIFY_TIME_FN  callback,
void *  context,
int  delay 
)

events.c894 行目に定義があります。

time_t event_time ( void  )

events.c647 行目に定義があります。