Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/arch/x86/include/asm/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 2 kB image not shown  

Quelle  compat.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _ASM_X86_COMPAT_H
#define _ASM_X86_COMPAT_H

/*
 * Architecture specific compatibility types
 */

#include <linux/types.h>
#include <linux/sched.h>
#include <linux/sched/task_stack.h>
#include <asm/processor.h>
#include <asm/user32.h>
#include <asm/unistd.h>

#define compat_mode_t compat_mode_t
typedef u16  compat_mode_t;

#define __compat_uid_t __compat_uid_t
typedef u16  __compat_uid_t;
typedef u16  __compat_gid_t;

#define compat_dev_t compat_dev_t
typedef u16  compat_dev_t;

#define compat_ipc_pid_t compat_ipc_pid_t
typedef u16   compat_ipc_pid_t;

#define compat_statfs compat_statfs

#include <asm-generic/compat.h>

#define COMPAT_UTS_MACHINE "i686\0\0"

typedef u16  compat_nlink_t;

struct compat_stat {
 u32  st_dev;
 compat_ino_t st_ino;
 compat_mode_t st_mode;
 compat_nlink_t st_nlink;
 __compat_uid_t st_uid;
 __compat_gid_t st_gid;
 u32  st_rdev;
 u32  st_size;
 u32  st_blksize;
 u32  st_blocks;
 u32  st_atime;
 u32  st_atime_nsec;
 u32  st_mtime;
 u32  st_mtime_nsec;
 u32  st_ctime;
 u32  st_ctime_nsec;
 u32  __unused4;
 u32  __unused5;
};

/*
 * IA32 uses 4 byte alignment for 64 bit quantities, so we need to pack the
 * compat flock64 structure.
 */

#define __ARCH_NEED_COMPAT_FLOCK64_PACKED

struct compat_statfs {
 int  f_type;
 int  f_bsize;
 int  f_blocks;
 int  f_bfree;
 int  f_bavail;
 int  f_files;
 int  f_ffree;
 compat_fsid_t f_fsid;
 int  f_namelen; /* SunOS ignores this field. */
 int  f_frsize;
 int  f_flags;
 int  f_spare[4];
};

#ifdef CONFIG_X86_X32_ABI
#define COMPAT_USE_64BIT_TIME \
 (!!(task_pt_regs(current)->orig_ax & __X32_SYSCALL_BIT))
#endif

static inline bool in_x32_syscall(void)
{
#ifdef CONFIG_X86_X32_ABI
 if (task_pt_regs(current)->orig_ax & __X32_SYSCALL_BIT)
  return true;
#endif
 return false;
}

static inline bool in_32bit_syscall(void)
{
 return in_ia32_syscall() || in_x32_syscall();
}

#ifdef CONFIG_COMPAT
static inline bool in_compat_syscall(void)
{
 return in_32bit_syscall();
}
#define in_compat_syscall in_compat_syscall /* override the generic impl */
#define compat_need_64bit_alignment_fixup in_ia32_syscall
#endif

struct compat_siginfo;

#ifdef CONFIG_X86_X32_ABI
int copy_siginfo_to_user32(struct compat_siginfo __user *to,
  const kernel_siginfo_t *from);
#define copy_siginfo_to_user32 copy_siginfo_to_user32
#endif /* CONFIG_X86_X32_ABI */

#endif /* _ASM_X86_COMPAT_H */

Messung V0.5
C=96 H=92 G=93

¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.