xref: /minix3/minix/lib/libsys/arch/i386/sys_sdevio.c (revision 685aa79304a3b43efa0194233b5d70cfb6df335e)
1433d6423SLionel Sambuc #include "syslib.h"
2433d6423SLionel Sambuc 
3433d6423SLionel Sambuc /*===========================================================================*
4433d6423SLionel Sambuc  *                                sys_sdevio				     *
5433d6423SLionel Sambuc  *===========================================================================*/
sys_sdevio(req,port,proc_nr,buffer,count,offset)6433d6423SLionel Sambuc int sys_sdevio(req, port, proc_nr, buffer, count, offset)
7433d6423SLionel Sambuc int req;				/* request: DIO_{IN,OUT}PUT_* */
8433d6423SLionel Sambuc long port; 				/* port address to read from */
9433d6423SLionel Sambuc endpoint_t proc_nr;			/* process where buffer is */
10433d6423SLionel Sambuc void *buffer;				/* pointer to buffer */
11433d6423SLionel Sambuc int count;				/* number of elements */
12433d6423SLionel Sambuc vir_bytes offset;			/* offset from grant */
13433d6423SLionel Sambuc {
14433d6423SLionel Sambuc     message m_io;
15433d6423SLionel Sambuc 
16433d6423SLionel Sambuc     m_io.m_lsys_krn_sys_sdevio.request = req;
17433d6423SLionel Sambuc     m_io.m_lsys_krn_sys_sdevio.port = port;
18433d6423SLionel Sambuc     m_io.m_lsys_krn_sys_sdevio.vec_endpt = proc_nr;
19*685aa793SDavid van Moolenbroek     m_io.m_lsys_krn_sys_sdevio.vec_addr = (vir_bytes)buffer;
20433d6423SLionel Sambuc     m_io.m_lsys_krn_sys_sdevio.vec_size = count;
21433d6423SLionel Sambuc     m_io.m_lsys_krn_sys_sdevio.offset = offset;
22433d6423SLionel Sambuc 
23433d6423SLionel Sambuc     return(_kernel_call(SYS_SDEVIO, &m_io));
24433d6423SLionel Sambuc }
25433d6423SLionel Sambuc 
26