LCOV - code coverage report
Current view: top level - zephyr/arch/x86/ia32 - gdbstub.h Hit Total Coverage
Test: new.info Lines: 3 22 13.6 %
Date: 2024-12-22 00:14:23

          Line data    Source code
       1           1 : /*
       2             :  * Copyright (c) 2020 Intel Corporation.
       3             :  *
       4             :  * SPDX-License-Identifier: Apache-2.0
       5             :  */
       6             : 
       7             : /**
       8             :  * @file
       9             :  * @brief IA-32 specific gdbstub interface header
      10             :  */
      11             : 
      12             : #ifndef ZEPHYR_INCLUDE_ARCH_X86_GDBSTUB_SYS_H_
      13             : #define ZEPHYR_INCLUDE_ARCH_X86_GDBSTUB_SYS_H_
      14             : 
      15             : #ifndef _ASMLANGUAGE
      16             : 
      17             : #include <stdint.h>
      18             : #include <zephyr/toolchain.h>
      19             : 
      20             : /**
      21             :  * @brief Number of register used by gdbstub in IA-32
      22             :  */
      23           1 : #define GDB_STUB_NUM_REGISTERS 16
      24             : 
      25             : /**
      26             :  * @brief GDB interruption context
      27             :  *
      28             :  * The exception stack frame contents used by gdbstub. The contents
      29             :  * of this struct are used to display information about the current
      30             :  * cpu state.
      31             :  */
      32             : 
      33           1 : struct gdb_interrupt_ctx {
      34           0 :         uint32_t ss;
      35           0 :         uint32_t gs;
      36           0 :         uint32_t fs;
      37           0 :         uint32_t es;
      38           0 :         uint32_t ds;
      39           0 :         uint32_t edi;
      40           0 :         uint32_t esi;
      41           0 :         uint32_t ebp;
      42           0 :         uint32_t esp;
      43           0 :         uint32_t ebx;
      44           0 :         uint32_t edx;
      45           0 :         uint32_t ecx;
      46           0 :         uint32_t eax;
      47           0 :         uint32_t vector;
      48           0 :         uint32_t error_code;
      49           0 :         uint32_t eip;
      50           0 :         uint32_t cs;
      51           0 :         uint32_t eflags;
      52             : } __packed;
      53             : 
      54             : /**
      55             :  * @brief IA-32 register used in gdbstub
      56             :  */
      57             : 
      58           0 : enum GDB_REGISTER {
      59             :         GDB_EAX,
      60             :         GDB_ECX,
      61             :         GDB_EDX,
      62             :         GDB_EBX,
      63             :         GDB_ESP,
      64             :         GDB_EBP,
      65             :         GDB_ESI,
      66             :         GDB_EDI,
      67             :         GDB_PC,
      68             :         GDB_EFLAGS,
      69             :         GDB_CS,
      70             :         GDB_SS,
      71             :         GDB_DS,
      72             :         GDB_ES,
      73             :         GDB_FS,
      74             :         GDB_GS,
      75             :         GDB_ORIG_EAX = 41,
      76             : };
      77             : 
      78             : struct gdb_ctx {
      79             :         unsigned int exception;
      80             :         unsigned int registers[GDB_STUB_NUM_REGISTERS];
      81             : };
      82             : 
      83             : #endif /* _ASMLANGUAGE */
      84             : 
      85             : #endif /* ZEPHYR_INCLUDE_ARCH_X86_GDBSTUB_SYS_H_ */

Generated by: LCOV version 1.14