diff options
Diffstat (limited to 'sys/compat')
-rw-r--r-- | sys/compat/ndis/kern_ndis.c | 26 | ||||
-rw-r--r-- | sys/compat/ndis/subr_ndis.c | 10 |
2 files changed, 36 insertions, 0 deletions
diff --git a/sys/compat/ndis/kern_ndis.c b/sys/compat/ndis/kern_ndis.c index 623cfca..98b9c91 100644 --- a/sys/compat/ndis/kern_ndis.c +++ b/sys/compat/ndis/kern_ndis.c @@ -1061,6 +1061,32 @@ ndis_send_packets(arg, packets, cnt) } int +ndis_send_packet(arg, packet) + void *arg; + ndis_packet *packet; +{ + struct ndis_softc *sc; + ndis_handle adapter; + ndis_status status; + __stdcall ndis_sendsingle_handler sendfunc; + __stdcall ndis_senddone_func senddonefunc; + + sc = arg; + adapter = sc->ndis_block.nmb_miniportadapterctx; + sendfunc = sc->ndis_chars.nmc_sendsingle_func; + senddonefunc = sc->ndis_block.nmb_senddone_func; + + status = sendfunc(adapter, packet, packet->np_private.npp_flags); + + if (status == NDIS_STATUS_PENDING) + return(0); + + senddonefunc(&sc->ndis_block, packet, status); + + return(0); +} + +int ndis_init_dma(arg) void *arg; { diff --git a/sys/compat/ndis/subr_ndis.c b/sys/compat/ndis/subr_ndis.c index 9f7df86..b7558ef 100644 --- a/sys/compat/ndis/subr_ndis.c +++ b/sys/compat/ndis/subr_ndis.c @@ -65,6 +65,7 @@ __FBSDID("$FreeBSD$"); #include <sys/smp.h> #include <sys/queue.h> #include <sys/proc.h> +#include <sys/filedesc.h> #include <sys/namei.h> #include <sys/fcntl.h> #include <sys/vnode.h> @@ -2392,6 +2393,14 @@ ndis_open_file(status, filehandle, filelength, filename, highestaddr) } mtx_lock(&Giant); + + /* Some threads don't have a current working directory. */ + + if (td->td_proc->p_fd->fd_rdir == NULL) + td->td_proc->p_fd->fd_rdir = rootvnode; + if (td->td_proc->p_fd->fd_cdir == NULL) + td->td_proc->p_fd->fd_cdir = rootvnode; + NDINIT(&nd, LOOKUP, FOLLOW, UIO_SYSSPACE, path, td); flags = FREAD; @@ -2400,6 +2409,7 @@ ndis_open_file(status, filehandle, filelength, filename, highestaddr) mtx_unlock(&Giant); *status = NDIS_STATUS_FILE_NOT_FOUND; free(fh, M_TEMP); + printf("ndis_open_file(): unable to open file '%s'\n", path); return; } |