xref: /linux/arch/x86/boot/regs.c (revision 58e16d792a6a8c6b750f637a4649967fcac853dc)
1*d6910058SThomas Gleixner // SPDX-License-Identifier: GPL-2.0-or-later
27a734e7dSH. Peter Anvin /* -----------------------------------------------------------------------
37a734e7dSH. Peter Anvin  *
47a734e7dSH. Peter Anvin  *   Copyright 2009 Intel Corporation; author H. Peter Anvin
57a734e7dSH. Peter Anvin  *
67a734e7dSH. Peter Anvin  * ----------------------------------------------------------------------- */
77a734e7dSH. Peter Anvin 
87a734e7dSH. Peter Anvin /*
97a734e7dSH. Peter Anvin  * Simple helper function for initializing a register set.
107a734e7dSH. Peter Anvin  *
117a734e7dSH. Peter Anvin  * Note that this sets EFLAGS_CF in the input register set; this
127a734e7dSH. Peter Anvin  * makes it easier to catch functions which do nothing but don't
137a734e7dSH. Peter Anvin  * explicitly set CF.
147a734e7dSH. Peter Anvin  */
157a734e7dSH. Peter Anvin 
167a734e7dSH. Peter Anvin #include "boot.h"
17c041b5adSVivek Goyal #include "string.h"
187a734e7dSH. Peter Anvin 
initregs(struct biosregs * reg)197a734e7dSH. Peter Anvin void initregs(struct biosregs *reg)
207a734e7dSH. Peter Anvin {
210e96f31eSJordan Borgner 	memset(reg, 0, sizeof(*reg));
227a734e7dSH. Peter Anvin 	reg->eflags |= X86_EFLAGS_CF;
237a734e7dSH. Peter Anvin 	reg->ds = ds();
247a734e7dSH. Peter Anvin 	reg->es = ds();
257a734e7dSH. Peter Anvin 	reg->fs = fs();
267a734e7dSH. Peter Anvin 	reg->gs = gs();
277a734e7dSH. Peter Anvin }
28