📄 saf_shm.h
字号:
/*=============================================================
* 功能: 存储转发用共享内存头文件(NAS V6.0)
* 作者:
*
* 周国祥 2001/06/07 增加用于存储转发处理的共享内存,目的在于解决时序问题
* ===============================================================*/
#ifndef _SAF_SHM_H_
#define _SAF_SHM_H_
#include <stdio.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <sys/sem.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <signal.h>
#define SAF_KEYFILE "/etc/SAF_IPCFILE"
#define SUCC 0
#define FAIL -1
#define PERMS 0666
/* 三层树型结构:方向-->卡号-->交易流水 */
/* saf共享区流水项结构 */
typedef struct saf_item_st {
char flag; /* 交易流水处理标志: */
/* 0 空闲 */
/* 1 未发送至switchsrv */
/* 2 已发送至switchsrv,但未收到应答 */
/* 3 已收到switchsrv应答 */
char update_date[9]; /* 流水形成的日期,为判断是否暂停转发而使用 */
PUBLIC saf_pub; /* 存储转发流水 */
struct saf_item_st *prev; /* saf共享区流水项指针, 存放数组index */
struct saf_item_st *next; /* saf共享区流水项指针, 存放数组index */
} SAF_ITEM;
/* saf共享区卡号结构, 每一路由方向的每一不同卡号一个结构,以next相链 */
typedef struct saf_card_st {
char flag; /* 有无进程在处理的标志:0无,1有 */
int pid; /* 进程号 */
int item_cnt; /* 本方向本卡号流水项计数 */
char card_id[20]; /* 卡号 */
char ret_code[3]; /* 上次转发的应答码 */
long ret_time; /* 上次应答时间 */
int err_cnt;
struct saf_card_st *prev; /* 卡号结构链接指针, 存放数组index */
struct saf_card_st *next; /* 卡号结构链接指针, 存放数组index */
SAF_ITEM *ihead; /* 本方向本卡号各交易流水项头指针 */
} SAF_CARD;
/* saf共享区头结构, 每一路由方向一个结构,以next相链 */
typedef struct saf_head_st {
int card_cnt; /* 本方向不同卡号计数 */
char rcv_bankid[12]; /* 本方向行号 */
char rcv_hostid[3]; /* 本方向主机号 */
char ret_code[3]; /* 上次转发的应答码 */
long ret_time; /* 上次应答时间 */
int err_cnt;
SAF_CARD *chead; /* 本方向卡号项头指针, 存放数组index */
} SAF_HEAD;
#define MAX_HEAD 100 /* 最多的路由方向 */
#define MAX_CARD 200 /* 最多卡号数 */
#define MAX_ITEM 500 /* 最多流水项数 */
extern SAF_HEAD *saf_head;
extern SAF_CARD *saf_card;
extern SAF_ITEM *saf_item;
#endif //_SAF_SHM_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -