2004 by Marc J. Rochkind. All rights reserved. Portions marked "Open Source" may be copied under license.

 

Main Page   Modules   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

c7/smi_fifo.c File Reference


Detailed Description

SMI - FIFOs [Sec. 7.3.3].

Definition in file smi_fifo.c.

Go to the source code of this file.

Compounds

struct  SMIQ_FIFO

Defines

#define MAX_CLIENTS   20

Functions

void clients_bgn (SMIQ_FIFO *p)
int clients_find (SMIQ_FIFO *p, pid_t pid)
void clients_close_all (SMIQ_FIFO *p)
void clients_end (SMIQ_FIFO *p)
void make_fifo_name_server (const SMIQ_FIFO *p, char *fifoname, size_t fifoname_max)
void make_fifo_name_client (pid_t pid, char *fifoname, size_t fifoname_max)
SMIQsmi_open_fifo (const char *name, SMIENTITY entity, size_t msgsize)
bool smi_close_fifo (SMIQ *sqp)
bool smi_send_getaddr_fifo (SMIQ *sqp, struct client_id *client, void **addr)
bool smi_send_release_fifo (SMIQ *sqp)
bool smi_receive_getaddr_fifo (SMIQ *sqp, void **addr)
bool smi_receive_release_fifo (SMIQ *sqp)


Define Documentation

#define MAX_CLIENTS   20
 

Definition at line 31 of file smi_fifo.c.

Referenced by clients_bgn(), clients_close_all(), clients_find(), get_client(), get_client_mqd(), and smi_close_pshm().


Function Documentation

void clients_bgn SMIQ_FIFO p  )  [static]
 

Definition at line 47 of file smi_fifo.c.

References MAX_CLIENTS, and SMIQ_FIFO::sq_clients.

Referenced by smi_open_fifo().

void clients_close_all SMIQ_FIFO p  )  [static]
 

Definition at line 70 of file smi_fifo.c.

References close(), MAX_CLIENTS, and SMIQ_FIFO::sq_clients.

Referenced by clients_end().

void clients_end SMIQ_FIFO p  )  [static]
 

Definition at line 81 of file smi_fifo.c.

References clients_close_all().

Referenced by smi_close_fifo().

int clients_find SMIQ_FIFO p,
pid_t  pid
[static]
 

Definition at line 55 of file smi_fifo.c.

References MAX_CLIENTS, and SMIQ_FIFO::sq_clients.

Referenced by smi_receive_getaddr_fifo(), and smi_send_release_fifo().

void make_fifo_name_client pid_t  pid,
char *  fifoname,
size_t  fifoname_max
[static]
 

Definition at line 92 of file smi_fifo.c.

Referenced by smi_close_fifo(), smi_open_fifo(), and smi_receive_getaddr_fifo().

void make_fifo_name_server const SMIQ_FIFO p,
char *  fifoname,
size_t  fifoname_max
[static]
 

Definition at line 86 of file smi_fifo.c.

References SMIQ_FIFO::sq_name.

Referenced by smi_open_fifo().

bool smi_close_fifo SMIQ sqp  ) 
 

Definition at line 145 of file smi_fifo.c.

References clients_end(), close(), getpid(), make_fifo_name_client(), SERVER_NAME_MAX, SMI_CLIENT, SMIQ_FIFO::sq_entity, SMIQ_FIFO::sq_fd_server, SMIQ_FIFO::sq_fd_server_w, SMIQ_FIFO::sq_msg, and unlink().

SMIQ* smi_open_fifo const char *  name,
SMIENTITY  entity,
size_t  msgsize
 

Definition at line 102 of file smi_fifo.c.

References clients_bgn(), EC_CLEANUP_BGN, EC_CLEANUP_END, EC_FAIL, ec_false, ec_neg1, ec_null, errno, getpid(), make_fifo_name_client(), make_fifo_name_server(), mkfifo(), open(), PERM_FILE, SERVER_NAME_MAX, setblock(), SMI_SERVER, SMIQ, SMIQ_FIFO::sq_clients, SMIQ_FIFO::sq_entity, SMIQ_FIFO::sq_fd_server, SMIQ_FIFO::sq_fd_server_w, SMIQ_FIFO::sq_msg, SMIQ_FIFO::sq_msgsize, SMIQ_FIFO::sq_name, and unlink().

bool smi_receive_getaddr_fifo SMIQ sqp,
void **  addr
 

Definition at line 206 of file smi_fifo.c.

References smi_msg::client_id::c_id1, clients_find(), EC_CLEANUP_BGN, EC_CLEANUP_END, EC_FAIL, ec_neg1, errno, make_fifo_name_client(), open(), read(), SERVER_NAME_MAX, smi_msg::smi_client, SMI_SERVER, SMIQ_FIFO::sq_clients, SMIQ_FIFO::sq_entity, SMIQ_FIFO::sq_fd_server, SMIQ_FIFO::sq_msg, and SMIQ_FIFO::sq_msgsize.

bool smi_receive_release_fifo SMIQ sqp  ) 
 

Definition at line 250 of file smi_fifo.c.

bool smi_send_getaddr_fifo SMIQ sqp,
struct client_id *  client,
void **  addr
 

Definition at line 169 of file smi_fifo.c.

References SMI_SERVER, SMIQ_FIFO::sq_client, SMIQ_FIFO::sq_entity, and SMIQ_FIFO::sq_msg.

bool smi_send_release_fifo SMIQ sqp  ) 
 

Definition at line 180 of file smi_fifo.c.

References smi_msg::client_id::c_id1, clients_find(), EC_CLEANUP_BGN, EC_CLEANUP_END, EC_FAIL, ec_neg1, errno, getpid(), smi_msg::smi_client, SMI_SERVER, SMIQ_FIFO::sq_client, SMIQ_FIFO::sq_clients, SMIQ_FIFO::sq_entity, SMIQ_FIFO::sq_fd_server, SMIQ_FIFO::sq_msg, SMIQ_FIFO::sq_msgsize, and write().


Generated on Fri Apr 23 10:57:09 2004 for AUP2 Example Source by doxygen 1.3.1