diff options
author | Alan Cox <alc@FreeBSD.org> | 2003-11-16 06:11:26 +0000 |
---|---|---|
committer | Alan Cox <alc@FreeBSD.org> | 2003-11-16 06:11:26 +0000 |
commit | e45db9b837dc530b86149374e2baeaa775061107 (patch) | |
tree | b69ee615792b94ee1abcb1231c0534c04003fef9 /sys/kern/uipc_syscalls.c | |
parent | 78a53859a043223696370900fe4fba3d0408435e (diff) | |
download | src-e45db9b837dc530b86149374e2baeaa775061107.tar.gz src-e45db9b837dc530b86149374e2baeaa775061107.zip |
- Modify alpha's sf_buf implementation to use the direct virtual-to-
physical mapping.
- Move the sf_buf API to its own header file; make struct sf_buf's
definition machine dependent. In this commit, we remove an
unnecessary field from struct sf_buf on the alpha, amd64, and ia64.
Ultimately, we may eliminate struct sf_buf on those architecures
except as an opaque pointer that references a vm page.
Notes
Notes:
svn path=/head/; revision=122780
Diffstat (limited to 'sys/kern/uipc_syscalls.c')
-rw-r--r-- | sys/kern/uipc_syscalls.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/kern/uipc_syscalls.c b/sys/kern/uipc_syscalls.c index 81779421aeee..0e52d4b77cac 100644 --- a/sys/kern/uipc_syscalls.c +++ b/sys/kern/uipc_syscalls.c @@ -60,6 +60,7 @@ __FBSDID("$FreeBSD$"); #include <sys/mount.h> #include <sys/mbuf.h> #include <sys/protosw.h> +#include <sys/sf_buf.h> #include <sys/socket.h> #include <sys/socketvar.h> #include <sys/signalvar.h> @@ -1885,16 +1886,16 @@ retry_lookup: MGETHDR(m, M_TRYWAIT, MT_DATA); if (m == NULL) { error = ENOBUFS; - sf_buf_free((void *)sf->kva, sf); + sf_buf_free((void *)sf_buf_kva(sf), sf); sbunlock(&so->so_snd); goto done; } /* * Setup external storage for mbuf. */ - MEXTADD(m, sf->kva, PAGE_SIZE, sf_buf_free, sf, M_RDONLY, + MEXTADD(m, sf_buf_kva(sf), PAGE_SIZE, sf_buf_free, sf, M_RDONLY, EXT_SFBUF); - m->m_data = (char *) sf->kva + pgoff; + m->m_data = (char *)sf_buf_kva(sf) + pgoff; m->m_pkthdr.len = m->m_len = xfsize; /* * Add the buffer to the socket buffer chain. |