aboutsummaryrefslogtreecommitdiff
path: root/sys/kern/uipc_syscalls.c
diff options
context:
space:
mode:
authorAlan Cox <alc@FreeBSD.org>2003-11-16 06:11:26 +0000
committerAlan Cox <alc@FreeBSD.org>2003-11-16 06:11:26 +0000
commite45db9b837dc530b86149374e2baeaa775061107 (patch)
treeb69ee615792b94ee1abcb1231c0534c04003fef9 /sys/kern/uipc_syscalls.c
parent78a53859a043223696370900fe4fba3d0408435e (diff)
downloadsrc-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.c7
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.