3.1.7 branch.
[minix.git] / kernel / arch / i386 / do_readbios.c
blob552716be67aa41a4bb6d565344df161b84582abc
1 /* The kernel call implemented in this file:
2 * m_type: SYS_READBIOS
4 * The parameters for this kernel call are:
5 * m2_i1: RDB_SIZE number of bytes to copy
6 * m2_l1: RDB_ADDR absolute address in BIOS area
7 * m2_p1: RDB_BUF buffer address in requesting process
8 */
10 #include "kernel/system.h"
11 #include <minix/type.h>
13 /*===========================================================================*
14 * do_readbios *
15 *===========================================================================*/
16 PUBLIC int do_readbios(struct proc * caller, message * m_ptr)
18 struct vir_addr src, dst;
20 src.segment = BIOS_SEG;
21 dst.segment = D;
22 src.offset = m_ptr->RDB_ADDR;
23 dst.offset = (vir_bytes) m_ptr->RDB_BUF;
24 src.proc_nr_e = NONE;
25 dst.proc_nr_e = m_ptr->m_source;
27 return virtual_copy_vmcheck(caller, &src, &dst, m_ptr->RDB_SIZE);