cregit-Linux how code gets into the kernel

Release 4.7 drivers/isdn/hisax/fsm.h

/* $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

Overall Contributors

PersonTokensPropCommitsCommitProp
linus torvaldslinus torvalds26499.62%150.00%
joe perchesjoe perches10.38%150.00%
Total265100.00%2100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
{% endraw %}