1/* 2 ************************************************************************* 3 * Ralink Tech Inc. 4 * 5F., No.36, Taiyuan St., Jhubei City, 5 * Hsinchu County 302, 6 * Taiwan, R.O.C. 7 * 8 * (c) Copyright 2002-2007, Ralink Technology, Inc. 9 * 10 * This program is free software; you can redistribute it and/or modify * 11 * it under the terms of the GNU General Public License as published by * 12 * the Free Software Foundation; either version 2 of the License, or * 13 * (at your option) any later version. * 14 * * 15 * This program is distributed in the hope that it will be useful, * 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 18 * GNU General Public License for more details. * 19 * * 20 * You should have received a copy of the GNU General Public License * 21 * along with this program; if not, write to the * 22 * Free Software Foundation, Inc., * 23 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * 24 * * 25 ************************************************************************* 26 27 Module Name: 28 rtmp_os.h 29 30 Abstract: 31 32 Revision History: 33 Who When What 34 --------- ---------- ---------------------------------------------- 35 */ 36 37#ifndef __RTMP_OS_H__ 38#define __RTMP_OS_H__ 39 40#include "rt_linux.h" 41 42/* 43 This data structure mainly strip some callback function defined in 44 "struct net_device" in kernel source "include/linux/netdevice.h". 45 46 The definition of this data structure may various depends on different 47 OS. Use it carefully. 48*/ 49struct rt_rtmp_os_netdev_op_hook { 50 const struct net_device_ops *netdev_ops; 51 void *priv; 52 int priv_flags; 53 unsigned char devAddr[6]; 54 unsigned char devName[16]; 55 unsigned char needProtcted; 56}; 57 58typedef enum _RTMP_TASK_STATUS_ { 59 RTMP_TASK_STAT_UNKNOWN = 0, 60 RTMP_TASK_STAT_INITED = 1, 61 RTMP_TASK_STAT_RUNNING = 2, 62 RTMP_TASK_STAT_STOPED = 4, 63} RTMP_TASK_STATUS; 64#define RTMP_TASK_CAN_DO_INSERT (RTMP_TASK_STAT_INITED |RTMP_TASK_STAT_RUNNING) 65 66#define RTMP_OS_TASK_NAME_LEN 16 67struct rt_rtmp_os_task { 68 char taskName[RTMP_OS_TASK_NAME_LEN]; 69 void *priv; 70 /*unsigned long taskFlags; */ 71 RTMP_TASK_STATUS taskStatus; 72#ifndef KTHREAD_SUPPORT 73 struct semaphore taskSema; 74 struct pid *taskPID; 75 struct completion taskComplete; 76#endif 77 unsigned char task_killed; 78#ifdef KTHREAD_SUPPORT 79 struct task_struct *kthread_task; 80 wait_queue_head_t kthread_q; 81 BOOLEAN kthread_running; 82#endif 83}; 84 85int RtmpOSIRQRequest(struct net_device *pNetDev); 86int RtmpOSIRQRelease(struct net_device *pNetDev); 87 88#endif /* __RMTP_OS_H__ // */ 89