arch/xtensa/platforms/iss/include/platform/simcall.h
Source file repositories/reference/linux-study-clean/arch/xtensa/platforms/iss/include/platform/simcall.h
File Facts
- System
- Linux kernel
- Corpus path
arch/xtensa/platforms/iss/include/platform/simcall.h- Extension
.h- Size
- 2343 bytes
- Lines
- 111
- Domain
- Architecture Layer
- Bucket
- arch/xtensa
- Inferred role
- Architecture Layer: implementation source
- Status
- source implementation candidate
Why This File Exists
CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.
- CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.
Dependency Surface
linux/bug.hplatform/simcall-iss.hplatform/simcall-gdbio.h
Detected Declarations
function Copyrightfunction simc_openfunction simc_closefunction simc_ioctlfunction simc_readfunction simc_writefunction simc_pollfunction simc_lseekfunction simc_argcfunction simc_argv_sizefunction simc_argv
Annotated Snippet
#ifndef _XTENSA_PLATFORM_ISS_SIMCALL_H
#define _XTENSA_PLATFORM_ISS_SIMCALL_H
#include <linux/bug.h>
#ifdef CONFIG_XTENSA_SIMCALL_ISS
#include <platform/simcall-iss.h>
#endif
#ifdef CONFIG_XTENSA_SIMCALL_GDBIO
#include <platform/simcall-gdbio.h>
#endif
static inline int simc_exit(int exit_code)
{
#ifdef SYS_exit
return __simc(SYS_exit, exit_code, 0, 0);
#else
WARN_ONCE(1, "%s: not implemented\n", __func__);
return -1;
#endif
}
static inline int simc_open(const char *file, int flags, int mode)
{
return __simc(SYS_open, (int) file, flags, mode);
}
static inline int simc_close(int fd)
{
return __simc(SYS_close, fd, 0, 0);
}
static inline int simc_ioctl(int fd, int request, void *arg)
{
#ifdef SYS_ioctl
return __simc(SYS_ioctl, fd, request, (int) arg);
#else
WARN_ONCE(1, "%s: not implemented\n", __func__);
return -1;
#endif
}
static inline int simc_read(int fd, void *buf, size_t count)
{
return __simc(SYS_read, fd, (int) buf, count);
}
static inline int simc_write(int fd, const void *buf, size_t count)
{
return __simc(SYS_write, fd, (int) buf, count);
}
static inline int simc_poll(int fd)
{
#ifdef SYS_select_one
long timeval[2] = { 0, 0 };
return __simc(SYS_select_one, fd, XTISS_SELECT_ONE_READ, (int)&timeval);
#else
WARN_ONCE(1, "%s: not implemented\n", __func__);
return -1;
#endif
}
static inline int simc_lseek(int fd, uint32_t off, int whence)
{
return __simc(SYS_lseek, fd, off, whence);
}
static inline int simc_argc(void)
{
#ifdef SYS_iss_argc
return __simc(SYS_iss_argc, 0, 0, 0);
#else
WARN_ONCE(1, "%s: not implemented\n", __func__);
return 0;
#endif
}
static inline int simc_argv_size(void)
{
#ifdef SYS_iss_argv_size
return __simc(SYS_iss_argv_size, 0, 0, 0);
#else
WARN_ONCE(1, "%s: not implemented\n", __func__);
return 0;
#endif
}
static inline void simc_argv(void *buf)
Annotation
- Immediate include surface: `linux/bug.h`, `platform/simcall-iss.h`, `platform/simcall-gdbio.h`.
- Detected declarations: `function Copyright`, `function simc_open`, `function simc_close`, `function simc_ioctl`, `function simc_read`, `function simc_write`, `function simc_poll`, `function simc_lseek`, `function simc_argc`, `function simc_argv_size`.
- Atlas domain: Architecture Layer / arch/xtensa.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.