Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

sethae(2) (Alpha)

FieldValue
Numbers (x64 / i386 / arm64-generic / arm32)– / – / – / – (Alpha table only)
Since (kernel)2.0
Man pagenone (no man2/sethae.2 in the man-pages 6.19 HTML set fetched 2026-10-17) – source-limited by construction
glibc wrapperno wrapper (no such symbol exported by glibc 2.41, nm -D); invoke via syscall(2)
Aliases coverednone
Ledger IDSC-sethae

Purpose

sethae() writes the Alpha HAE (Hardware Address Extension) register: the verified body is current_pt_regs()->hae = val; return 0; (arch/alpha/kernel/osf_sys.c:1299, fetched 2026-10-17). The HAE was OSF/1’s mechanism for extending sparse I/O addressing on early Alpha platforms – a platform register that the kernel tracks in the process’s saved register state so it can be restored across context switches.

Synopsis

/* Alpha syscall (OSF/1 legacy) */
long syscall(SYS_sethae, unsigned long val);   /* returns 0 */

Arguments and behavior

One argument: the new HAE value (verified source).

Return value and errors

Always returns 0 (verified source).

Flags and constants

None.

Security and notes

Source-limited: implementation verified in the fetched source; no man page exists. The call is OSF/1 heritage kept for binaries of that era – a good interview example of a syscall whose entire purpose is one platform register. Cross-reference: getxuid (same table neighborhood), ioperm, iopl.

References

  • Kernel source: arch/alpha/kernel/osf_sys.c (SYSCALL_DEFINE1(sethae), torvalds/linux master, fetched 2026-10-17)
  • Ledger row SC-sethae