File wsh_shell_session.h
FileList > src > wsh_shell_session.h
Go to the source code of this file
Persistent login session across reboots. More...
#include "wsh_shell_cfg.h"#include "wsh_shell_misc.h"#include "wsh_shell_types.h"
Classes
| Type | Name |
|---|---|
| struct | WshShellSessionIO_t Function pointers for session persistence I/O. |
| struct | WshShellSession_t Persisted session descriptor with an integrity hash. |
Public Types
| Type | Name |
|---|---|
| typedef WshShellSession_t(* | WshShellSession_ReadHandler_t Read the persisted session descriptor. |
| typedef void(* | WshShellSession_WriteHandler_t Persist the session descriptor. |
Public Functions
| Type | Name |
|---|---|
| void | WshShellSession_Clear (WshShellSessionIO_t * pSessIO) Drop any persisted session. |
| void | WshShellSession_Init (WshShellSessionIO_t * pSessIO, WshShellSession_ReadHandler_t readFn, WshShellSession_WriteHandler_t writeFn) Initialise the session system with custom I/O handlers. |
| WshShell_Bool_t | WshShellSession_IsValid (const WshShellSession_t * pcSession) Check whether a descriptor is a valid, active keep request. |
| WshShellSession_t | WshShellSession_Read (WshShellSessionIO_t * pSessIO) Read the persisted descriptor. |
| void | WshShellSession_Store (WshShellSessionIO_t * pSessIO, WshShellSession_t session) Persist a descriptor, computing its integrity hash first. |
Detailed Description
Lets the host keep the current login valid across a bounded number of reboots, so a device that reboots mid-session (firmware bug, watchdog) does not force a re-login. The budget is a plain reboot counter — no wall-clock/RTC is needed: each restore consumes one reboot from the budget.
Storage is delegated to the integrator through read/write handlers (same pattern as the command history), so the shell core stays storage-agnostic. A no-init RAM region is the natural backing store: it survives a warm reboot but is lost on real power removal.
Author:
Whoosh Embedded Team
Copyright:
Copyright (c) 2025
Public Types Documentation
typedef WshShellSession_ReadHandler_t
Read the persisted session descriptor.
typedef WshShellSession_WriteHandler_t
Persist the session descriptor.
Public Functions Documentation
function WshShellSession_Clear
Drop any persisted session.
Parameters:
pSessIOPointer to the I/O structure.
function WshShellSession_Init
Initialise the session system with custom I/O handlers.
Installs the handlers and normalises the backing store: any invalid descriptor (e.g. random RAM after a cold boot) is cleared so it will not be restored.
Parameters:
pSessIOPointer to the I/O structure.readFnCallback to read the saved descriptor.writeFnCallback to persist the descriptor.
function WshShellSession_IsValid
Check whether a descriptor is a valid, active keep request.
Parameters:
pcSessionDescriptor to validate.
Return value:
trueHash matches and RebootsLeft > 0.falseCorrupt/uninitialised, or budget exhausted.
function WshShellSession_Read
Read the persisted descriptor.
Parameters:
pSessIOPointer to the I/O structure.
Returns:
The stored descriptor (may be invalid — check with WshShellSession_IsValid()).
function WshShellSession_Store
Persist a descriptor, computing its integrity hash first.
Parameters:
pSessIOPointer to the I/O structure.sessionDescriptor to store (its Hash field is filled in).
The documentation for this class was generated from the following file src/wsh_shell_session.h