 475be4d85a
			
		
	
	
	475be4d85a
	
	
	
		
			
			isdn source code uses a not-current coding style. Update the coding style used on a per-line basis so that git diff -w shows only elided blank lines at EOF. Done with emacs and some scripts and some typing. Built x86 allyesconfig. No detected change in objdump -d or size. Signed-off-by: Joe Perches <joe@perches.com>
		
			
				
	
	
		
			61 lines
		
	
	
	
		
			1.4 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
	
		
			1.4 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
| /* $Id: fsm.h,v 1.3.2.2 2001/09/23 22:24:47 kai Exp $
 | |
|  *
 | |
|  * Finite state machine
 | |
|  *
 | |
|  * Author       Karsten Keil
 | |
|  * Copyright    by Karsten Keil      <keil@isdn4linux.de>
 | |
|  *              by Kai Germaschewski <kai.germaschewski@gmx.de>
 | |
|  *
 | |
|  * This software may be used and distributed according to the terms
 | |
|  * of the GNU General Public License, incorporated herein by reference.
 | |
|  *
 | |
|  */
 | |
| 
 | |
| #ifndef __FSM_H__
 | |
| #define __FSM_H__
 | |
| 
 | |
| #include <linux/timer.h>
 | |
| 
 | |
| struct FsmInst;
 | |
| 
 | |
| typedef void (*FSMFNPTR)(struct FsmInst *, int, void *);
 | |
| 
 | |
| struct Fsm {
 | |
| 	FSMFNPTR *jumpmatrix;
 | |
| 	int state_count, event_count;
 | |
| 	char **strEvent, **strState;
 | |
| };
 | |
| 
 | |
| struct FsmInst {
 | |
| 	struct Fsm *fsm;
 | |
| 	int state;
 | |
| 	int debug;
 | |
| 	void *userdata;
 | |
| 	int userint;
 | |
| 	void (*printdebug) (struct FsmInst *, char *, ...);
 | |
| };
 | |
| 
 | |
| struct FsmNode {
 | |
| 	int state, event;
 | |
| 	void (*routine) (struct FsmInst *, int, void *);
 | |
| };
 | |
| 
 | |
| struct FsmTimer {
 | |
| 	struct FsmInst *fi;
 | |
| 	struct timer_list tl;
 | |
| 	int event;
 | |
| 	void *arg;
 | |
| };
 | |
| 
 | |
| int FsmNew(struct Fsm *fsm, struct FsmNode *fnlist, int fncount);
 | |
| void FsmFree(struct Fsm *fsm);
 | |
| int FsmEvent(struct FsmInst *fi, int event, void *arg);
 | |
| void FsmChangeState(struct FsmInst *fi, int newstate);
 | |
| void FsmInitTimer(struct FsmInst *fi, struct FsmTimer *ft);
 | |
| int FsmAddTimer(struct FsmTimer *ft, int millisec, int event,
 | |
| 		void *arg, int where);
 | |
| void FsmRestartTimer(struct FsmTimer *ft, int millisec, int event,
 | |
| 		     void *arg, int where);
 | |
| void FsmDelTimer(struct FsmTimer *ft, int where);
 | |
| 
 | |
| #endif
 |