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

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

?? highlevel.h

?? Ieee1394驅動實現
?? H
字號:
#ifndef IEEE1394_HIGHLEVEL_H
#define IEEE1394_HIGHLEVEL_H

#include <linux/list.h>
#include <linux/spinlock_types.h>
#include <linux/types.h>

struct module;

#include "ieee1394_types.h"

struct hpsb_host;

/* internal to ieee1394 core */
struct hpsb_address_serve {
	struct list_head host_list;	/* per host list */
	struct list_head hl_list;	/* hpsb_highlevel list */
	struct hpsb_address_ops *op;
	struct hpsb_host *host;
	u64 start;	/* first address handled, quadlet aligned */
	u64 end;	/* first address behind, quadlet aligned */
};

/* Only the following structures are of interest to actual highlevel drivers. */

struct hpsb_highlevel {
	const char *name;

	/* Any of the following pointers can legally be NULL. */

	/* New host initialized.  Will also be called during
	 * hpsb_register_highlevel for all hosts already installed. */
	void (*add_host)(struct hpsb_host *host);

	/* Host about to be removed.  Will also be called during
	 * hpsb_unregister_highlevel once for each host. */
	void (*remove_host)(struct hpsb_host *host);

	/* Host experienced bus reset with possible configuration changes.
	 * Note that this one may occur during interrupt/bottom half handling.
	 * You can not expect to be able to do stock hpsb_reads. */
	void (*host_reset)(struct hpsb_host *host);

	/* A write request was received on either the FCP_COMMAND (direction =
	 * 0) or the FCP_RESPONSE (direction = 1) register.  The cts arg
	 * contains the cts field (first byte of data). */
	void (*fcp_request)(struct hpsb_host *host, int nodeid, int direction,
			    int cts, u8 *data, size_t length);

	/* These are initialized by the subsystem when the
	 * hpsb_higlevel is registered. */
	struct list_head hl_list;
	struct list_head irq_list;
	struct list_head addr_list;

	struct list_head host_info_list;
	rwlock_t host_info_lock;
};

struct hpsb_address_ops {
	/*
	 * Null function pointers will make the respective operation complete
	 * with RCODE_TYPE_ERROR.  Makes for easy to implement read-only
	 * registers (just leave everything but read NULL).
	 *
	 * All functions shall return appropriate IEEE 1394 rcodes.
	 */

	/* These functions have to implement block reads for themselves.
	 *
	 * These functions either return a response code or a negative number.
	 * In the first case a response will be generated.  In the latter case,
	 * no response will be sent and the driver which handled the request
	 * will send the response itself. */
	int (*read)(struct hpsb_host *host, int nodeid, quadlet_t *buffer,
		    u64 addr, size_t length, u16 flags);
	int (*write)(struct hpsb_host *host, int nodeid, int destid,
		     quadlet_t *data, u64 addr, size_t length, u16 flags);

	/* Lock transactions: write results of ext_tcode operation into
	 * *store. */
	int (*lock)(struct hpsb_host *host, int nodeid, quadlet_t *store,
		    u64 addr, quadlet_t data, quadlet_t arg, int ext_tcode,
		    u16 flags);
	int (*lock64)(struct hpsb_host *host, int nodeid, octlet_t *store,
		      u64 addr, octlet_t data, octlet_t arg, int ext_tcode,
		      u16 flags);
};

void highlevel_add_host(struct hpsb_host *host);
void highlevel_remove_host(struct hpsb_host *host);
void highlevel_host_reset(struct hpsb_host *host);
int highlevel_read(struct hpsb_host *host, int nodeid, void *data, u64 addr,
		   unsigned int length, u16 flags);
int highlevel_write(struct hpsb_host *host, int nodeid, int destid, void *data,
		    u64 addr, unsigned int length, u16 flags);
int highlevel_lock(struct hpsb_host *host, int nodeid, quadlet_t *store,
		   u64 addr, quadlet_t data, quadlet_t arg, int ext_tcode,
		   u16 flags);
int highlevel_lock64(struct hpsb_host *host, int nodeid, octlet_t *store,
		     u64 addr, octlet_t data, octlet_t arg, int ext_tcode,
		     u16 flags);
void highlevel_fcp_request(struct hpsb_host *host, int nodeid, int direction,
			   void *data, size_t length);

void hpsb_register_highlevel(struct hpsb_highlevel *hl);
void hpsb_unregister_highlevel(struct hpsb_highlevel *hl);

u64 hpsb_allocate_and_register_addrspace(struct hpsb_highlevel *hl,
					 struct hpsb_host *host,
					 struct hpsb_address_ops *ops,
					 u64 size, u64 alignment,
					 u64 start, u64 end);
int hpsb_register_addrspace(struct hpsb_highlevel *hl, struct hpsb_host *host,
			    struct hpsb_address_ops *ops, u64 start, u64 end);
int hpsb_unregister_addrspace(struct hpsb_highlevel *hl, struct hpsb_host *host,
			      u64 start);

void *hpsb_get_hostinfo(struct hpsb_highlevel *hl, struct hpsb_host *host);
void *hpsb_create_hostinfo(struct hpsb_highlevel *hl, struct hpsb_host *host,
			   size_t data_size);
void hpsb_destroy_hostinfo(struct hpsb_highlevel *hl, struct hpsb_host *host);
void hpsb_set_hostinfo_key(struct hpsb_highlevel *hl, struct hpsb_host *host,
			   unsigned long key);
void *hpsb_get_hostinfo_bykey(struct hpsb_highlevel *hl, unsigned long key);
int hpsb_set_hostinfo(struct hpsb_highlevel *hl, struct hpsb_host *host,
		      void *data);

#endif /* IEEE1394_HIGHLEVEL_H */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人h动漫精品| 亚洲自拍偷拍网站| 国产成人av在线影院| 精品国产免费一区二区三区四区| 韩日精品视频一区| 亚洲国产精品v| 色噜噜狠狠一区二区三区果冻| 夜夜揉揉日日人人青青一国产精品| 欧美日韩亚州综合| 蜜臀a∨国产成人精品| 久久色视频免费观看| a在线欧美一区| 亚洲成年人影院| 日韩视频一区二区三区在线播放 | 日韩一区二区中文字幕| 精品一区二区综合| 国产精品另类一区| 欧美日韩精品系列| 国产精品亚洲一区二区三区妖精 | 久久99热这里只有精品| 久久久国产精品麻豆| 色综合咪咪久久| 久久精品国产亚洲a| 亚洲三级电影全部在线观看高清| 精品视频一区二区三区免费| 精品亚洲成a人在线观看| 国产精品久久久久久久久快鸭| 欧美女孩性生活视频| 国产在线视视频有精品| 亚洲精品成a人| 精品国产乱码久久久久久蜜臀| 99精品视频在线观看| 日本在线观看不卡视频| 亚洲视频1区2区| 精品久久久久香蕉网| 色婷婷综合激情| 激情五月婷婷综合| 亚洲一区电影777| 国产精品久久久久影院老司| 日韩视频在线你懂得| 一本久道中文字幕精品亚洲嫩 | 亚洲综合无码一区二区| 久久久久国产一区二区三区四区| 欧美专区在线观看一区| 国产美女精品一区二区三区| 亚洲一区二区三区美女| 国产精品沙发午睡系列990531| 6080yy午夜一二三区久久| a级精品国产片在线观看| 久久er精品视频| 亚洲va国产天堂va久久en| 综合色天天鬼久久鬼色| 久久久久88色偷偷免费 | 精品欧美一区二区久久 | 欧美一区二区在线免费播放| 91蜜桃在线免费视频| 国产suv一区二区三区88区| 蜜臀av一区二区| 亚洲高清一区二区三区| 亚洲天天做日日做天天谢日日欢 | 亚洲乱码日产精品bd| 国产欧美精品国产国产专区 | 成人精品免费网站| 国产在线不卡一卡二卡三卡四卡| 蜜臀av亚洲一区中文字幕| 亚洲一级二级在线| 亚洲成在人线免费| 亚洲综合自拍偷拍| 亚洲一区免费在线观看| 亚洲小少妇裸体bbw| 夜夜精品视频一区二区| 亚洲精品成人精品456| 樱桃视频在线观看一区| 亚洲精品欧美激情| 一二三四区精品视频| 性久久久久久久| 日本成人在线电影网| 日本美女一区二区| 久久国产视频网| 国产一区二区美女诱惑| 国产不卡免费视频| av一区二区久久| 91黄色免费看| 在线综合+亚洲+欧美中文字幕| 欧美精品一二三四| 精品久久人人做人人爽| 国产三级精品视频| 18欧美亚洲精品| 亚洲一卡二卡三卡四卡| 日本aⅴ亚洲精品中文乱码| 美脚の诱脚舐め脚责91| 国产精品综合一区二区| 成人app软件下载大全免费| 色综合久久久久网| 911精品国产一区二区在线| 欧美成人女星排名| 中文字幕欧美激情| 依依成人精品视频| 精品一区二区免费| 国产91在线观看| 一本一本大道香蕉久在线精品| 欧美系列在线观看| 欧美大胆人体bbbb| 国产精品理伦片| 视频在线观看91| 成人综合在线视频| 欧美美女一区二区三区| 久久理论电影网| 亚洲精品久久久蜜桃| 日本欧美大码aⅴ在线播放| 国产成人精品免费| 欧美日韩一区二区三区高清| 精品国产欧美一区二区| 亚洲精品视频在线观看网站| 蜜芽一区二区三区| 99re这里只有精品首页| 制服丝袜亚洲色图| 中文字幕乱码久久午夜不卡| 亚洲自拍与偷拍| 国产成人高清视频| 欧美情侣在线播放| 日本一区二区综合亚洲| 三级久久三级久久| eeuss鲁片一区二区三区| 91精品国产乱| 亚洲自拍另类综合| 国产v日产∨综合v精品视频| 欧美日韩视频在线一区二区| 国产欧美一区二区精品性色超碰| 午夜影视日本亚洲欧洲精品| 国产成人超碰人人澡人人澡| 欧美一区日本一区韩国一区| 一区二区三区日韩欧美| 成人午夜免费视频| 日韩一区二区三区视频在线观看| 亚洲乱码国产乱码精品精可以看| 国产一区二区精品久久| 欧美精品xxxxbbbb| 亚洲与欧洲av电影| 色综合天天综合网天天看片| 久久精品在这里| 青青草精品视频| 欧美老女人第四色| 亚洲一区二区五区| 色网站国产精品| 亚洲欧美在线aaa| 成人听书哪个软件好| 久久综合色鬼综合色| 奇米影视一区二区三区| 欧美挠脚心视频网站| 一级特黄大欧美久久久| 91猫先生在线| 国产精品天天摸av网| 国产精品正在播放| 精品久久人人做人人爰| 久久99在线观看| 精品乱人伦小说| 精品一区二区日韩| 亚洲精品一区二区三区影院 | 国产一区二区毛片| 精品国产青草久久久久福利| 久久99这里只有精品| 精品国产伦一区二区三区观看方式| 午夜视频在线观看一区二区 | 亚洲综合色区另类av| 色嗨嗨av一区二区三区| 亚洲码国产岛国毛片在线| youjizz国产精品| 亚洲色图清纯唯美| 一本久道久久综合中文字幕| 一区二区三区色| 欧美久久一二区| 日韩av网站在线观看| 精品入口麻豆88视频| 精东粉嫩av免费一区二区三区| 久久女同精品一区二区| 丁香天五香天堂综合| 中文字幕中文在线不卡住| 色狠狠av一区二区三区| 亚洲6080在线| 日韩一二三区不卡| 国产精品综合一区二区三区| 欧美激情一区二区三区| 99精品久久只有精品| 一区二区三区久久| 欧美一区永久视频免费观看| 精久久久久久久久久久| 国产精品天美传媒| 欧美在线观看视频一区二区三区| 天天色 色综合| 欧美精品一区二区蜜臀亚洲| 风间由美中文字幕在线看视频国产欧美 | 日本一区二区三区高清不卡| 99久久精品国产毛片| 午夜精品免费在线观看| 欧美精品一区二区三区四区 | 亚洲免费毛片网站| 欧美一区二区三区四区在线观看| 9人人澡人人爽人人精品| 亚洲黄色小说网站|