diff options
Diffstat (limited to 'device')
-rw-r--r-- | device/dev_hdr.h | 16 | ||||
-rw-r--r-- | device/dev_pager.c | 1 | ||||
-rw-r--r-- | device/device_init.c | 2 | ||||
-rw-r--r-- | device/ds_routines.c | 1 | ||||
-rw-r--r-- | device/ds_routines.h | 2 | ||||
-rw-r--r-- | device/net_io.c | 30 | ||||
-rw-r--r-- | device/net_io.h | 2 | ||||
-rw-r--r-- | device/subrs.c | 1 | ||||
-rw-r--r-- | device/subrs.h | 34 |
9 files changed, 88 insertions, 1 deletions
diff --git a/device/dev_hdr.h b/device/dev_hdr.h index d5b8770..340a2db 100644 --- a/device/dev_hdr.h +++ b/device/dev_hdr.h @@ -130,4 +130,20 @@ boolean_t dev_map(boolean_t (*)(), mach_port_t); #define device_lock(device) simple_lock(&(device)->lock) #define device_unlock(device) simple_unlock(&(device)->lock) +/* + * device name lookup + */ +extern boolean_t dev_name_lookup( + char * name, + dev_ops_t *ops, /* out */ + int *unit); /* out */ + +/* + * Change an entry in the indirection list. + */ +extern void dev_set_indirection( + char *name, + dev_ops_t ops, + int unit); + #endif /* _DEVICE_DEV_HDR_H_ */ diff --git a/device/dev_pager.c b/device/dev_pager.c index 68c978c..224be85 100644 --- a/device/dev_pager.c +++ b/device/dev_pager.c @@ -49,6 +49,7 @@ #include <vm/vm_page.h> #include <vm/vm_kern.h> +#include <vm/vm_user.h> #include <device/device_types.h> #include <device/ds_routines.h> diff --git a/device/device_init.c b/device/device_init.c index a2e4967..1da2a6f 100644 --- a/device/device_init.c +++ b/device/device_init.c @@ -36,7 +36,7 @@ #include <device/device_types.h> #include <device/device_port.h> - +#include <device/tty.h> extern void mach_device_init(); diff --git a/device/ds_routines.c b/device/ds_routines.c index 61eec99..943185e 100644 --- a/device/ds_routines.c +++ b/device/ds_routines.c @@ -81,6 +81,7 @@ #include <vm/memory_object.h> #include <vm/vm_map.h> #include <vm/vm_kern.h> +#include <vm/vm_user.h> #include <device/device_types.h> #include <device/dev_hdr.h> diff --git a/device/ds_routines.h b/device/ds_routines.h index f794303..24668b4 100644 --- a/device/ds_routines.h +++ b/device/ds_routines.h @@ -52,4 +52,6 @@ boolean_t ds_open_done(io_req_t); boolean_t ds_read_done(io_req_t); boolean_t ds_write_done(io_req_t); +void iowait (io_req_t ior); + #endif /* DS_ROUTINES_H */ diff --git a/device/net_io.c b/device/net_io.c index b565aa3..5f287cb 100644 --- a/device/net_io.c +++ b/device/net_io.c @@ -367,6 +367,36 @@ decl_simple_lock_data(,net_hash_header_lock) extern boolean_t net_do_filter(); /* CSPF */ extern int bpf_do_filter(); /* BPF */ +int hash_ent_remove ( + struct ifnet *ifp, + net_hash_header_t hp, + int used, + net_hash_entry_t *head, + net_hash_entry_t entp, + queue_entry_t *dead_p); + +void net_free_dead_infp (queue_entry_t dead_infp); +void net_free_dead_entp (queue_entry_t dead_entp); + +int bpf_validate( + bpf_insn_t f, + int bytes, + bpf_insn_t *match); + +int bpf_eq ( + bpf_insn_t f1, + bpf_insn_t f2, + register int bytes); + +int net_add_q_info (ipc_port_t rcv_port); + +int bpf_match ( + net_hash_header_t hash, + int n_keys, + unsigned int *keys, + net_hash_entry_t **hash_headpp, + net_hash_entry_t *entpp); + /* * ethernet_priority: diff --git a/device/net_io.h b/device/net_io.h index ce18182..073bdca 100644 --- a/device/net_io.h +++ b/device/net_io.h @@ -78,6 +78,8 @@ extern io_return_t net_write(struct ifnet *, int (*)(), io_req_t); extern vm_size_t net_kmsg_size; +extern void net_kmsg_collect (void); + #define net_kmsg_alloc() ((ipc_kmsg_t) kalloc(net_kmsg_size)) #define net_kmsg_free(kmsg) kfree((vm_offset_t) (kmsg), net_kmsg_size) diff --git a/device/subrs.c b/device/subrs.c index ea63a5c..9b2b9ad 100644 --- a/device/subrs.c +++ b/device/subrs.c @@ -30,6 +30,7 @@ #include <kern/debug.h> #include <kern/printf.h> #include <vm/vm_kern.h> +#include <vm/vm_user.h> #include <device/buf.h> #include <device/if_hdr.h> #include <device/if_ether.h> diff --git a/device/subrs.h b/device/subrs.h new file mode 100644 index 0000000..680aaa6 --- /dev/null +++ b/device/subrs.h @@ -0,0 +1,34 @@ +/* + * Random device functions + * Copyright (C) 2008 Free Software Foundation, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * + * Author: Barry deFreese. + */ +/* + * Random device functions. + * + */ + +#ifndef _SUBRS_H_ +#define _SUBRS_H_ + +#include <mach/std_types.h> + +extern void sleep (vm_offset_t channel, int priority); +extern void wakeup (vm_offset_t channel); + +#endif /* _SUBRS_H_ */ |