亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ieee1394_core.h

?? 這個是uClinux下的ieee1394驅動
?? H
字號:
#ifndef _IEEE1394_CORE_H#define _IEEE1394_CORE_H#include <linux/tqueue.h>#include <linux/slab.h>#include <linux/devfs_fs_kernel.h>#include <linux/proc_fs.h>#include <asm/semaphore.h>#include "hosts.h"struct hpsb_packet {        /* This struct is basically read-only for hosts with the exception of         * the data buffer contents and xnext - see below. */        struct list_head list;        /* This can be used for host driver internal linking. */	struct list_head driver_list;        nodeid_t node_id;        /* Async and Iso types should be clear, raw means send-as-is, do not         * CRC!  Byte swapping shall still be done in this case. */        enum { hpsb_async, hpsb_iso, hpsb_raw } __attribute__((packed)) type;        /* Okay, this is core internal and a no care for hosts.         * queued   = queued for sending         * pending  = sent, waiting for response         * complete = processing completed, successful or not         * incoming = incoming packet         */        enum {                 hpsb_unused, hpsb_queued, hpsb_pending, hpsb_complete, hpsb_incoming         } __attribute__((packed)) state;        /* These are core internal. */        char tlabel;        char ack_code;        char tcode;        unsigned expect_response:1;        unsigned no_waiter:1;        /* Data big endianness flag - may vary from request to request.  The         * header is always in machine byte order.         * Not really used currently.  */        unsigned data_be:1;        /* Speed to transmit with: 0 = 100Mbps, 1 = 200Mbps, 2 = 400Mbps */        unsigned speed_code:2;        /*         * *header and *data are guaranteed to be 32-bit DMAable and may be         * overwritten to allow in-place byte swapping.  Neither of these is         * CRCed (the sizes also don't include CRC), but contain space for at         * least one additional quadlet to allow in-place CRCing.  The memory is         * also guaranteed to be DMA mappable.         */        quadlet_t *header;        quadlet_t *data;        size_t header_size;        size_t data_size;        struct hpsb_host *host;        unsigned int generation;        /* Very core internal, don't care. */        struct semaphore state_change;	struct list_head complete_tq;        /* Store jiffies for implementing bus timeouts. */        unsigned long sendtime;        quadlet_t embedded_header[5];};/* add a new task for when a packet completes */void hpsb_add_packet_complete_task(struct hpsb_packet *packet, struct tq_struct *tq);static inline struct hpsb_packet *driver_packet(struct list_head *l){	return list_entry(l, struct hpsb_packet, driver_list);}void abort_timedouts(struct hpsb_host *host);void abort_requests(struct hpsb_host *host);struct hpsb_packet *alloc_hpsb_packet(size_t data_size);void free_hpsb_packet(struct hpsb_packet *packet);/* * Generation counter for the complete 1394 subsystem.  Generation gets * incremented on every change in the subsystem (e.g. bus reset). * * Use the functions, not the variable. */#include <asm/atomic.h>static inline unsigned int get_hpsb_generation(struct hpsb_host *host){        return atomic_read(&host->generation);}/* * Queue packet for transmitting, return 0 for failure. */int hpsb_send_packet(struct hpsb_packet *packet);/* Initiate bus reset on the given host.  Returns 1 if bus reset already in * progress, 0 otherwise. */int hpsb_reset_bus(struct hpsb_host *host, int type);/* * The following functions are exported for host driver module usage.  All of * them are safe to use in interrupt contexts, although some are quite * complicated so you may want to run them in bottom halves instead of calling * them directly. *//* Notify a bus reset to the core.  Returns 1 if bus reset already in progress, * 0 otherwise. */int hpsb_bus_reset(struct hpsb_host *host);/* * Hand over received selfid packet to the core.  Complement check (second * quadlet is complement of first) is expected to be done and succesful. */void hpsb_selfid_received(struct hpsb_host *host, quadlet_t sid);/*  * Notify completion of SelfID stage to the core and report new physical ID * and whether host is root now. */void hpsb_selfid_complete(struct hpsb_host *host, int phyid, int isroot);/* * Notify core of sending a packet.  Ackcode is the ack code returned for async * transmits or ACKX_SEND_ERROR if the transmission failed completely; ACKX_NONE * for other cases (internal errors that don't justify a panic).  Safe to call * from within a transmit packet routine. */void hpsb_packet_sent(struct hpsb_host *host, struct hpsb_packet *packet,                      int ackcode);/* * Hand over received packet to the core.  The contents of data are expected to * be the full packet but with the CRCs left out (data block follows header * immediately), with the header (i.e. the first four quadlets) in machine byte * order and the data block in big endian.  *data can be safely overwritten * after this call. * * If the packet is a write request, write_acked is to be set to true if it was * ack_complete'd already, false otherwise.  This arg is ignored for any other * packet type. */void hpsb_packet_received(struct hpsb_host *host, quadlet_t *data, size_t size,                          int write_acked);/* * CHARACTER DEVICE DISPATCHING * * All ieee1394 character device drivers share the same major number * (major 171).  The 256 minor numbers are allocated to the various * task-specific interfaces (raw1394, video1394, dv1394, etc) in * blocks of 16. * * The core ieee1394.o modules handles the initial open() for all * character devices on major 171; it then dispatches to the * appropriate task-specific driver. * * Minor device number block allocations: * * Block 0  (  0- 15)  raw1394 * Block 1  ( 16- 31)  video1394 * Block 2  ( 32- 47)  dv1394 * * Blocks 3-14 free for future allocation * * Block 15 (240-255)  reserved for drivers under development, etc. */#define IEEE1394_MAJOR               171#define IEEE1394_MINOR_BLOCK_RAW1394       0#define IEEE1394_MINOR_BLOCK_VIDEO1394     1#define IEEE1394_MINOR_BLOCK_DV1394        2#define IEEE1394_MINOR_BLOCK_AMDTP         3#define IEEE1394_MINOR_BLOCK_EXPERIMENTAL 15/* return the index (within a minor number block) of a file */static inline unsigned char ieee1394_file_to_instance(struct file *file){	unsigned char minor = minor(file->f_dentry->d_inode->i_rdev);		/* return lower 4 bits */	return minor & 0xF;}/*  * Task-specific drivers should call ieee1394_register_chardev() to * request a block of 16 minor numbers. * * Returns 0 if the request was successful, -EBUSY if the block was * already taken. */int  ieee1394_register_chardev(int blocknum,           /* 0-15 */			       struct module *module,  /* THIS_MODULE */			       struct file_operations *file_ops);/* release a block of minor numbers */void ieee1394_unregister_chardev(int blocknum);/* the devfs handle for /dev/ieee1394; NULL if devfs is not in use */extern devfs_handle_t ieee1394_devfs_handle;/* the proc_fs entry for /proc/ieee1394 */extern struct proc_dir_entry *ieee1394_procfs_entry;#endif /* _IEEE1394_CORE_H */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合天天综合网天天看片| 91精品国产乱| 精品一区二区三区欧美| 一区二区三区免费| 亚洲综合偷拍欧美一区色| 最新不卡av在线| 一区二区三区在线观看网站| 夜夜嗨av一区二区三区中文字幕| 亚洲精品亚洲人成人网| 亚洲一区二区三区中文字幕| 精品免费国产二区三区| 91蜜桃婷婷狠狠久久综合9色| 国产精品一区专区| 99久久久久久99| 91麻豆国产福利精品| 99精品久久只有精品| 91福利视频久久久久| 制服丝袜亚洲色图| 国产亚洲欧美日韩俺去了| 久久精品视频一区二区| 国产精品理论在线观看| 玉米视频成人免费看| 亚洲自拍偷拍综合| 精品亚洲免费视频| 成人性生交大片免费看中文 | wwwwxxxxx欧美| 国产色综合一区| 一区二区成人在线| 国产一区二区三区高清播放| www.欧美日韩国产在线| 欧美精品v日韩精品v韩国精品v| 欧美v国产在线一区二区三区| 综合激情成人伊人| 麻豆91免费看| 91福利在线播放| 欧美极品aⅴ影院| 婷婷一区二区三区| 成人手机电影网| 91精品国产91热久久久做人人| 中文字幕精品一区二区精品绿巨人| 天天影视色香欲综合网老头| 国产综合久久久久久久久久久久| 欧美亚洲综合另类| 国产欧美精品一区| 免费成人美女在线观看.| 91在线国产福利| 久久久久久毛片| 爽好多水快深点欧美视频| 99久久久久免费精品国产| 精品国产一区a| 午夜精品久久久久久久| 色综合久久综合网欧美综合网| 精品国一区二区三区| 性做久久久久久免费观看| caoporn国产精品| 久久婷婷成人综合色| 亚洲1区2区3区4区| 欧洲色大大久久| 国产精品福利影院| 国产成人av影院| 精品国产乱码久久久久久牛牛| 午夜亚洲福利老司机| 日本韩国精品在线| 中文字幕人成不卡一区| 国产成人亚洲综合色影视| 精品国产乱码久久久久久浪潮 | 三级一区在线视频先锋| 亚洲高清视频中文字幕| 色综合久久66| 亚洲视频免费观看| aaa欧美日韩| 国产精品看片你懂得| 成人听书哪个软件好| 中文字幕免费不卡在线| 精品亚洲成a人在线观看| 日韩午夜在线观看| 91丝袜高跟美女视频| 欧美一级日韩一级| 亚洲成人av一区二区三区| 欧美日韩大陆一区二区| 无码av免费一区二区三区试看| 欧美理论在线播放| 美脚の诱脚舐め脚责91| 欧美成人一区二区三区片免费| 久久99精品国产.久久久久| 欧美videofree性高清杂交| 国产麻豆精品95视频| 国产精品网曝门| 91猫先生在线| 日韩中文欧美在线| 精品日韩一区二区| 懂色av一区二区夜夜嗨| 亚洲男同性恋视频| 这里只有精品视频在线观看| 日本成人在线看| 国产日产欧美精品一区二区三区| 成人午夜私人影院| 亚洲一区二区视频在线观看| 精品三级av在线| 国产精品女主播在线观看| 中文无字幕一区二区三区| 国产一区二区在线免费观看| 国产午夜精品久久| 欧美性色综合网| 韩国在线一区二区| 国产精品免费久久久久| 在线免费不卡视频| 国产黑丝在线一区二区三区| 亚洲日本电影在线| 日韩一区二区三区av| 北条麻妃国产九九精品视频| 亚洲一二三区不卡| 久久久久国产免费免费| 欧美午夜精品一区二区三区| 国产成人小视频| 日本 国产 欧美色综合| 亚洲人成在线播放网站岛国 | 亚洲自拍另类综合| 精品久久国产字幕高潮| 欧美日韩一区二区在线视频| 国产69精品久久99不卡| 日韩在线一二三区| 亚洲免费观看高清在线观看| 欧美mv日韩mv国产网站app| 一本大道久久精品懂色aⅴ| 国产在线不卡视频| 日韩精品一区第一页| 亚洲狼人国产精品| 国产欧美一区二区精品秋霞影院 | 日本一区二区三区在线观看| 91精品国产综合久久蜜臀| 99热精品国产| 成人激情免费电影网址| 另类小说欧美激情| 日韩影院免费视频| 亚洲一区二区三区三| 亚洲人123区| 国产精品毛片久久久久久| 精品国产青草久久久久福利| 欧美午夜精品电影| 色噜噜偷拍精品综合在线| 成人性生交大片免费| 国产精品一区二区免费不卡 | 国产精品视频九色porn| 精品免费一区二区三区| 日韩一级大片在线观看| 4hu四虎永久在线影院成人| 欧美日韩中字一区| 欧美性xxxxxxxx| 在线观看91视频| 欧美视频精品在线观看| 欧美午夜精品久久久久久孕妇| 一本大道久久a久久精品综合| 99久久久无码国产精品| 色天天综合久久久久综合片| 91成人在线精品| 欧美精品一二三| 精品少妇一区二区三区日产乱码 | 欧美xxxxx牲另类人与| 欧美va亚洲va国产综合| 久久综合色天天久久综合图片| 亚洲精品在线免费播放| 国产亚洲综合色| 自拍偷拍欧美激情| 亚洲综合一区在线| 日日夜夜免费精品视频| 麻豆国产精品视频| 国产精品538一区二区在线| 不卡区在线中文字幕| 91日韩一区二区三区| 欧美午夜电影一区| 日韩色视频在线观看| 国产丝袜欧美中文另类| 国产精品短视频| 亚洲国产精品欧美一二99| 美女视频一区二区三区| 丁香激情综合国产| 欧美午夜视频网站| 久久品道一品道久久精品| 亚洲日韩欧美一区二区在线| 日韩高清中文字幕一区| 韩国v欧美v亚洲v日本v| 99精品国产热久久91蜜凸| 欧美美女网站色| 日本一区二区三区dvd视频在线| 一区二区三区久久久| 激情综合网激情| 在线视频综合导航| 久久综合久久综合亚洲| 一区二区成人在线视频 | 中文字幕日韩欧美一区二区三区| 中文字幕日韩精品一区 | 1024成人网| 日韩电影一区二区三区| 成人午夜免费视频| 日韩一区二区在线观看| 亚洲免费在线观看视频| 国产曰批免费观看久久久| 欧美性xxxxxxxx| 日韩美女视频19|