BPicture: Fix archive constructor.
[haiku.git] / src / add-ons / kernel / drivers / network / ipro1000 / device.h
blob4a7ca32ee6e956ff60c418c31925b8e8ef15a4da
1 /* Intel PRO/1000 Family Driver
2 * Copyright (C) 2004 Marcus Overhagen <marcus@overhagen.de>. All rights reserved.
4 * Permission to use, copy, modify and distribute this software and its
5 * documentation for any purpose and without fee is hereby granted, provided
6 * that the above copyright notice appear in all copies, and that both the
7 * copyright notice and this permission notice appear in supporting documentation.
9 * Marcus Overhagen makes no representations about the suitability of this software
10 * for any purpose. It is provided "as is" without express or implied warranty.
12 * MARCUS OVERHAGEN DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
13 * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL MARCUS
14 * OVERHAGEN BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
15 * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
17 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
19 #ifndef __DEVICE_H
20 #define __DEVICE_H
22 #include <PCI.h>
23 #include "setup.h"
25 extern pci_module_info *gPci;
27 status_t ipro1000_open(const char *name, uint32 flags, void** cookie);
28 status_t ipro1000_read(void* cookie, off_t position, void *buf, size_t* num_bytes);
29 status_t ipro1000_write(void* cookie, off_t position, const void* buffer, size_t* num_bytes);
30 status_t ipro1000_control(void *cookie, uint32 op, void *arg, size_t len);
31 status_t ipro1000_close(void* cookie);
32 status_t ipro1000_free(void* cookie);
34 struct adapter;
36 typedef struct device {
37 int devId;
38 pci_info * pciInfo;
40 struct adapter * adapter;
41 uint8 pciBus;
42 uint8 pciDev;
43 uint8 pciFunc;
44 void * regAddr;
46 volatile bool nonblocking;
47 volatile bool closed;
49 uint32 maxframesize; // 14 bytes header + MTU
50 uint8 macaddr[6];
52 #ifdef HAIKU_TARGET_PLATFORM_HAIKU
53 sem_id linkChangeSem;
54 #endif
55 } ipro1000_device;
57 #endif