diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-04-30 11:59:57 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-04-30 11:59:57 -0400 |
commit | 40caf5ea5a7d47f8a33e26b63ca81dea4b5109d2 (patch) | |
tree | 3f879353d5cb69d2dee707108e4aaeae075f5a0c /drivers/ieee1394/highlevel.h | |
parent | d6454706c382ab74e2ecad7803c434cc6bd30343 (diff) | |
parent | bcfd09ee48f77a4fe903dbc3757e7af931998ce1 (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6: (56 commits)
ieee1394: remove garbage from Kconfig
ieee1394: more help in Kconfig
ieee1394: ohci1394: Fix mistake in printk message.
ieee1394: ohci1394: remove unnecessary rcvPhyPkt bit flipping in LinkControl register
ieee1394: ohci1394: fix cosmetic problem in error logging
ieee1394: eth1394: send async streams at S100 on 1394b buses
ieee1394: eth1394: fix error path in module_init
ieee1394: eth1394: correct return codes in hard_start_xmit
ieee1394: eth1394: hard_start_xmit is called in atomic context
ieee1394: eth1394: some conditions are unlikely
ieee1394: eth1394: clean up fragment_overlap
ieee1394: eth1394: don't use alloc_etherdev
ieee1394: eth1394: omit useless set_mac_address callback
ieee1394: eth1394: CONFIG_INET is always defined
ieee1394: eth1394: allow MTU bigger than 1500
ieee1394: unexport highlevel_host_reset
ieee1394: eth1394: contain host reset
ieee1394: eth1394: shorter error messages
ieee1394: eth1394: correct a memset argument
ieee1394: eth1394: refactor .probe and .update
...
Diffstat (limited to 'drivers/ieee1394/highlevel.h')
-rw-r--r-- | drivers/ieee1394/highlevel.h | 55 |
1 files changed, 1 insertions, 54 deletions
diff --git a/drivers/ieee1394/highlevel.h b/drivers/ieee1394/highlevel.h index 4b330117067a..63474f7ee69d 100644 --- a/drivers/ieee1394/highlevel.h +++ b/drivers/ieee1394/highlevel.h | |||
@@ -99,16 +99,6 @@ struct hpsb_address_ops { | |||
99 | void highlevel_add_host(struct hpsb_host *host); | 99 | void highlevel_add_host(struct hpsb_host *host); |
100 | void highlevel_remove_host(struct hpsb_host *host); | 100 | void highlevel_remove_host(struct hpsb_host *host); |
101 | void highlevel_host_reset(struct hpsb_host *host); | 101 | void highlevel_host_reset(struct hpsb_host *host); |
102 | |||
103 | /* | ||
104 | * These functions are called to handle transactions. They are called when a | ||
105 | * packet arrives. The flags argument contains the second word of the first | ||
106 | * header quadlet of the incoming packet (containing transaction label, retry | ||
107 | * code, transaction code and priority). These functions either return a | ||
108 | * response code or a negative number. In the first case a response will be | ||
109 | * generated. In the latter case, no response will be sent and the driver which | ||
110 | * handled the request will send the response itself. | ||
111 | */ | ||
112 | int highlevel_read(struct hpsb_host *host, int nodeid, void *data, u64 addr, | 102 | int highlevel_read(struct hpsb_host *host, int nodeid, void *data, u64 addr, |
113 | unsigned int length, u16 flags); | 103 | unsigned int length, u16 flags); |
114 | int highlevel_write(struct hpsb_host *host, int nodeid, int destid, void *data, | 104 | int highlevel_write(struct hpsb_host *host, int nodeid, int destid, void *data, |
@@ -119,30 +109,13 @@ int highlevel_lock(struct hpsb_host *host, int nodeid, quadlet_t *store, | |||
119 | int highlevel_lock64(struct hpsb_host *host, int nodeid, octlet_t *store, | 109 | int highlevel_lock64(struct hpsb_host *host, int nodeid, octlet_t *store, |
120 | u64 addr, octlet_t data, octlet_t arg, int ext_tcode, | 110 | u64 addr, octlet_t data, octlet_t arg, int ext_tcode, |
121 | u16 flags); | 111 | u16 flags); |
122 | |||
123 | void highlevel_iso_receive(struct hpsb_host *host, void *data, size_t length); | 112 | void highlevel_iso_receive(struct hpsb_host *host, void *data, size_t length); |
124 | void highlevel_fcp_request(struct hpsb_host *host, int nodeid, int direction, | 113 | void highlevel_fcp_request(struct hpsb_host *host, int nodeid, int direction, |
125 | void *data, size_t length); | 114 | void *data, size_t length); |
126 | 115 | ||
127 | /* | ||
128 | * Register highlevel driver. The name pointer has to stay valid at all times | ||
129 | * because the string is not copied. | ||
130 | */ | ||
131 | void hpsb_register_highlevel(struct hpsb_highlevel *hl); | 116 | void hpsb_register_highlevel(struct hpsb_highlevel *hl); |
132 | void hpsb_unregister_highlevel(struct hpsb_highlevel *hl); | 117 | void hpsb_unregister_highlevel(struct hpsb_highlevel *hl); |
133 | 118 | ||
134 | /* | ||
135 | * Register handlers for host address spaces. Start and end are 48 bit pointers | ||
136 | * and have to be quadlet aligned. Argument "end" points to the first address | ||
137 | * behind the handled addresses. This function can be called multiple times for | ||
138 | * a single hpsb_highlevel to implement sparse register sets. The requested | ||
139 | * region must not overlap any previously allocated region, otherwise | ||
140 | * registering will fail. | ||
141 | * | ||
142 | * It returns true for successful allocation. Address spaces can be | ||
143 | * unregistered with hpsb_unregister_addrspace. All remaining address spaces | ||
144 | * are automatically deallocated together with the hpsb_highlevel. | ||
145 | */ | ||
146 | u64 hpsb_allocate_and_register_addrspace(struct hpsb_highlevel *hl, | 119 | u64 hpsb_allocate_and_register_addrspace(struct hpsb_highlevel *hl, |
147 | struct hpsb_host *host, | 120 | struct hpsb_host *host, |
148 | struct hpsb_address_ops *ops, | 121 | struct hpsb_address_ops *ops, |
@@ -152,45 +125,19 @@ int hpsb_register_addrspace(struct hpsb_highlevel *hl, struct hpsb_host *host, | |||
152 | struct hpsb_address_ops *ops, u64 start, u64 end); | 125 | struct hpsb_address_ops *ops, u64 start, u64 end); |
153 | int hpsb_unregister_addrspace(struct hpsb_highlevel *hl, struct hpsb_host *host, | 126 | int hpsb_unregister_addrspace(struct hpsb_highlevel *hl, struct hpsb_host *host, |
154 | u64 start); | 127 | u64 start); |
155 | |||
156 | /* | ||
157 | * Enable or disable receving a certain isochronous channel through the | ||
158 | * iso_receive op. | ||
159 | */ | ||
160 | int hpsb_listen_channel(struct hpsb_highlevel *hl, struct hpsb_host *host, | 128 | int hpsb_listen_channel(struct hpsb_highlevel *hl, struct hpsb_host *host, |
161 | unsigned int channel); | 129 | unsigned int channel); |
162 | void hpsb_unlisten_channel(struct hpsb_highlevel *hl, struct hpsb_host *host, | 130 | void hpsb_unlisten_channel(struct hpsb_highlevel *hl, struct hpsb_host *host, |
163 | unsigned int channel); | 131 | unsigned int channel); |
164 | 132 | ||
165 | /* Retrieve a hostinfo pointer bound to this driver/host */ | ||
166 | void *hpsb_get_hostinfo(struct hpsb_highlevel *hl, struct hpsb_host *host); | 133 | void *hpsb_get_hostinfo(struct hpsb_highlevel *hl, struct hpsb_host *host); |
167 | |||
168 | /* Allocate a hostinfo pointer of data_size bound to this driver/host */ | ||
169 | void *hpsb_create_hostinfo(struct hpsb_highlevel *hl, struct hpsb_host *host, | 134 | void *hpsb_create_hostinfo(struct hpsb_highlevel *hl, struct hpsb_host *host, |
170 | size_t data_size); | 135 | size_t data_size); |
171 | |||
172 | /* Free and remove the hostinfo pointer bound to this driver/host */ | ||
173 | void hpsb_destroy_hostinfo(struct hpsb_highlevel *hl, struct hpsb_host *host); | 136 | void hpsb_destroy_hostinfo(struct hpsb_highlevel *hl, struct hpsb_host *host); |
174 | |||
175 | /* Set an alternate lookup key for the hostinfo bound to this driver/host */ | ||
176 | void hpsb_set_hostinfo_key(struct hpsb_highlevel *hl, struct hpsb_host *host, | 137 | void hpsb_set_hostinfo_key(struct hpsb_highlevel *hl, struct hpsb_host *host, |
177 | unsigned long key); | 138 | unsigned long key); |
178 | |||
179 | /* Retrieve the alternate lookup key for the hostinfo bound to this | ||
180 | * driver/host */ | ||
181 | unsigned long hpsb_get_hostinfo_key(struct hpsb_highlevel *hl, | ||
182 | struct hpsb_host *host); | ||
183 | |||
184 | /* Retrieve a hostinfo pointer bound to this driver using its alternate key */ | ||
185 | void *hpsb_get_hostinfo_bykey(struct hpsb_highlevel *hl, unsigned long key); | 139 | void *hpsb_get_hostinfo_bykey(struct hpsb_highlevel *hl, unsigned long key); |
186 | |||
187 | /* Set the hostinfo pointer to something useful. Usually follows a call to | ||
188 | * hpsb_create_hostinfo, where the size is 0. */ | ||
189 | int hpsb_set_hostinfo(struct hpsb_highlevel *hl, struct hpsb_host *host, | 140 | int hpsb_set_hostinfo(struct hpsb_highlevel *hl, struct hpsb_host *host, |
190 | void *data); | 141 | void *data); |
191 | 142 | ||
192 | /* Retrieve hpsb_host using a highlevel handle and a key */ | ||
193 | struct hpsb_host *hpsb_get_host_bykey(struct hpsb_highlevel *hl, | ||
194 | unsigned long key); | ||
195 | |||
196 | #endif /* IEEE1394_HIGHLEVEL_H */ | 143 | #endif /* IEEE1394_HIGHLEVEL_H */ |