Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
log.c
Package: linux-2.4.20.tar.gz [view]
Upload User: jlfgdled
Upload Date: 2013-04-10
Package Size: 33168k
Code Size: 3k
Category:
Linux-Unix program
Development Platform:
Unix_Linux
- /*
- * Source file for diva log facility
- *
- * Copyright (C) Eicon Technology Corporation, 2000.
- *
- * Eicon File Revision : 1.5
- *
- * This software may be used and distributed according to the terms
- * of the GNU General Public License, incorporated herein by reference.
- *
- */
- #include "sys.h"
- #include "idi.h"
- #include "divas.h"
- #include "adapter.h"
- #include "divalog.h"
- #include "uxio.h"
- /*Counter to monitor number of messages */
- static int m_count;
- #define MAX_BUFFERED_MSGS (1000)
- /* Our Linked List Structure to hold message */
- typedef struct klog_link{
- klog_t klog;
- struct klog_link *next;
- }KNODE;
- /* First & Last structures in list*/
- KNODE *head;
- KNODE *tail;
- /*
- * retrieve message from FIFO buffer
- * returns NULL if buffer empty
- * otherwise returns pointer to entry
- */
- char *DivasLogFifoRead(void)
- {
- KNODE *old_head;
- if(head==NULL)
- {
- /* Buffer Empty - No Messages */
- return NULL;
- }
- m_count--;
- /* Keep track of message to be read & increment to next message*/
- old_head = head;
- head = head->next;
- /*Return ptr to Msg */
- return((char *)old_head);
- }
- /*
- * write message into FIFO buffer
- */
- void DivasLogFifoWrite(char *entry, int length)
- {
- KNODE *new_klog;
- if(head == NULL)
- {
- /* No Entries in Log */
- tail=NULL;
- m_count=0;
- new_klog=UxAlloc(sizeof(KNODE));
- if(new_klog==NULL)
- {
- return;
- }
- m_count++;
- memset(new_klog, 0, sizeof(KNODE));
- /* Set head & tail to point to the new Msg Struct */
- head=tail=new_klog;
- tail->next=NULL;
- }
- else
- {
- new_klog=UxAlloc(sizeof(KNODE));
- if(new_klog==NULL)
- {
- return;
- }
- m_count++;
- memset(new_klog, 0, sizeof(KNODE));
- /* Let last Msg Struct point to new Msg Struct & inc tail */
- tail->next=new_klog;
- tail=new_klog;
- tail->next=NULL;
- }
- if (length > sizeof(klog_t))
- {
- length = sizeof(klog_t);
- }
- memcpy(&tail->klog, entry, length);
- return;
- }
- /*
- * DivaslogFifoEmpty:return TRUE if FIFO buffer is empty,otherwise FALSE
- */
- int DivasLogFifoEmpty(void)
- {
- return (m_count == 0);
- }
- /*
- *DivasLogFifoFull:return TRUE if FIFO buffer is full,otherwise FALSE
- */
- int DivasLogFifoFull(void)
- {
- return (m_count == MAX_BUFFERED_MSGS);
- }
- /*
- * generate an IDI log entry
- */
- void DivasLogIdi(card_t *card, ENTITY *e, int request)
- {
- klog_t klog;
- memset(&klog, 0, sizeof(klog));
- klog.time_stamp = UxTimeGet();
- klog.length = sizeof(ENTITY) > sizeof(klog.buffer) ?
- sizeof(klog.buffer) : sizeof(ENTITY);
- klog.card = (int) (card - DivasCards);
- klog.type = request ? KLOG_IDI_REQ : KLOG_IDI_CALLBACK;
- klog.code = 0;
- memcpy(klog.buffer, e, klog.length);
- /* send to the log driver and return */
- DivasLogAdd(&klog, sizeof(klog));
- return;
- }