Class SystemdFunctions
java.lang.Object
oshi.ffm.ForeignFunctions
oshi.ffm.linux.SystemdFunctions
FFM bindings for libsystemd session query functions.
-
Field Summary
Fields inherited from class ForeignFunctions
CAPTURE_CALL_STATE, CAPTURED_STATE_LAYOUT, ERRNO_HANDLE, LIBRARY_ARENA, LINKER, NATIVE_LONG_SIZE, NATIVE_POINTER_SIZE, NATIVE_SIZE_T_SIZE, SYMBOL_LOOKUP -
Method Summary
Modifier and TypeMethodDescriptionstatic voidfree(MemorySegment ptr) Callsfree(ptr)to release memory allocated by systemd.static booleanReturns whether libsystemd was successfully loaded.static StringreadAndFreeString(MemorySegment ptr, Arena arena) Reads a null-terminated string from a pointer and frees the pointer.static intsdGetSessions(MemorySegment sessionsPtr) Callssd_get_sessions(char ***sessions).static intsdSessionGetRemoteHost(MemorySegment session, MemorySegment remoteHostPtr) Callssd_session_get_remote_host(session, &remote_host).static intsdSessionGetStartTime(MemorySegment session, MemorySegment usecPtr) Callssd_session_get_start_time(session, &usec).static intsdSessionGetTty(MemorySegment session, MemorySegment ttyPtr) Callssd_session_get_tty(session, &tty).static intsdSessionGetUsername(MemorySegment session, MemorySegment usernamePtr) Callssd_session_get_username(session, &username).Methods inherited from class ForeignFunctions
downcall, getByteArrayFromNativePointer, getErrno, getStringFromNativePointer, getStructFromNativePointer, lib, libraryLookup
-
Method Details
-
isAvailable
public static boolean isAvailable()Returns whether libsystemd was successfully loaded.- Returns:
- true if all systemd symbols were bound
-
sdGetSessions
Callssd_get_sessions(char ***sessions).- Parameters:
sessionsPtr- pointer-to-pointer output segment- Returns:
- number of sessions on success, negative errno on failure
- Throws:
Throwable- if the native call fails
-
sdSessionGetUsername
public static int sdSessionGetUsername(MemorySegment session, MemorySegment usernamePtr) throws Throwable Callssd_session_get_username(session, &username).- Parameters:
session- session ID segment (null-terminated)usernamePtr- pointer-to-pointer output segment- Returns:
- 0 on success, negative errno on failure
- Throws:
Throwable- if the native call fails
-
sdSessionGetStartTime
public static int sdSessionGetStartTime(MemorySegment session, MemorySegment usecPtr) throws Throwable Callssd_session_get_start_time(session, &usec).- Parameters:
session- session ID segment (null-terminated)usecPtr- pointer to uint64_t output- Returns:
- 0 on success, negative errno on failure
- Throws:
Throwable- if the native call fails
-
sdSessionGetTty
Callssd_session_get_tty(session, &tty).- Parameters:
session- session ID segment (null-terminated)ttyPtr- pointer-to-pointer output segment- Returns:
- 0 on success, negative errno on failure
- Throws:
Throwable- if the native call fails
-
sdSessionGetRemoteHost
public static int sdSessionGetRemoteHost(MemorySegment session, MemorySegment remoteHostPtr) throws Throwable Callssd_session_get_remote_host(session, &remote_host).- Parameters:
session- session ID segment (null-terminated)remoteHostPtr- pointer-to-pointer output segment- Returns:
- 0 on success, negative errno on failure
- Throws:
Throwable- if the native call fails
-
free
Callsfree(ptr)to release memory allocated by systemd.- Parameters:
ptr- the pointer to free- Throws:
Throwable- if the native call fails
-
readAndFreeString
Reads a null-terminated string from a pointer and frees the pointer.- Parameters:
ptr- the pointer to a C string allocated by systemdarena- arena to scope the reinterpret- Returns:
- the Java string, or
nullif the pointer is NULL - Throws:
Throwable- if the native call fails
-