xref: /linux/arch/x86/boot/regs.c (revision 0e96f31ea4249b1e94e266fe4dff908c2983a9b3)
17a734e7dSH. Peter Anvin /* -----------------------------------------------------------------------
27a734e7dSH. Peter Anvin  *
37a734e7dSH. Peter Anvin  *   Copyright 2009 Intel Corporation; author H. Peter Anvin
47a734e7dSH. Peter Anvin  *
57a734e7dSH. Peter Anvin  *   This file is part of the Linux kernel, and is made available under
67a734e7dSH. Peter Anvin  *   the terms of the GNU General Public License version 2 or (at your
77a734e7dSH. Peter Anvin  *   option) any later version; incorporated herein by reference.
87a734e7dSH. Peter Anvin  *
97a734e7dSH. Peter Anvin  * ----------------------------------------------------------------------- */
107a734e7dSH. Peter Anvin 
117a734e7dSH. Peter Anvin /*
127a734e7dSH. Peter Anvin  * Simple helper function for initializing a register set.
137a734e7dSH. Peter Anvin  *
147a734e7dSH. Peter Anvin  * Note that this sets EFLAGS_CF in the input register set; this
157a734e7dSH. Peter Anvin  * makes it easier to catch functions which do nothing but don't
167a734e7dSH. Peter Anvin  * explicitly set CF.
177a734e7dSH. Peter Anvin  */
187a734e7dSH. Peter Anvin 
197a734e7dSH. Peter Anvin #include "boot.h"
20c041b5adSVivek Goyal #include "string.h"
217a734e7dSH. Peter Anvin 
227a734e7dSH. Peter Anvin void initregs(struct biosregs *reg)
237a734e7dSH. Peter Anvin {
24*0e96f31eSJordan Borgner 	memset(reg, 0, sizeof(*reg));
257a734e7dSH. Peter Anvin 	reg->eflags |= X86_EFLAGS_CF;
267a734e7dSH. Peter Anvin 	reg->ds = ds();
277a734e7dSH. Peter Anvin 	reg->es = ds();
287a734e7dSH. Peter Anvin 	reg->fs = fs();
297a734e7dSH. Peter Anvin 	reg->gs = gs();
307a734e7dSH. Peter Anvin }
31