CLASSIC
Modul: eth
Rolle: constitutive
Konfidenz: 95%
SNIP_CLASSIC_ETH_SECTION_8_3_23_Eth_ProvideTxBuffer
Wortlaut
8.3.23 Eth_ProvideTxBuffer
[SWS_Eth_00077] Definition of API function Eth_ProvideTxBuffer ⌈
Service Name
Eth_ProvideTxBuffer
Syntax
BufReq_ReturnType Eth_ProvideTxBuffer (
uint8 CtrlIdx,
uint8 Priority,
Eth_BufIdxType* BufIdxPtr,
uint8** BufPtr,
uint16* LenBytePtr
)
Service ID [hex]
0x09
Sync/Async
Synchronous
Reentrancy
Reentrant
CtrlIdx
Index of the controller within the context of the Driver
Parameters (in)
Priority
Frame priority for transmit buffer queue selection
Parameters (inout)
LenBytePtr
In: desired length in bytes, out: granted length in bytes
BufIdxPtr
Index to the granted buffer resource. To be used for subsequent
requests
Parameters (out)
BufPtr
Pointer to the granted buffer
Return value
BufReq_ReturnType
BUFREQ_OK: success
BUFREQ_E_NOT_OK: request not accepted.
BUFREQ_E_BUSY: all buffers in use
BUFREQ_E_OVFL: requested buffer too large
Description
Provides access to a transmit buffer of the queue related to the specified priority
Available via
Eth.h
⌋()
[SWS_Eth_00078] ⌈The function shall provide a transmit buffer resource. The Ethernet Driver shall lock the buffer until it receives a subsequent call of Eth_Transmit
service with the buffer index returned in the BufIdxPtr parameter.⌋()
[SWS_Eth_00280] ⌈All locked transmit buffers shall be released if the Rx/Tx communication of the indexed controller is disabled via Eth_SetControllerMode.⌋()
[SWS_Eth_00079] ⌈If a buffer requested with Eth_ProvideTxBuffer that is larger than
the available buffer length, the buffer shall not be locked but return the available length
and BUFREQ_E_OVFL.⌋()
[SWS_Eth_00080] ⌈If all available buffers are in use the component shall return
BUFREQ_E_BUSY.⌋()
[SWS_Eth_00081] ⌈If development error detection is enabled: the function shall check
that the service Eth_Init was previously called. If the check fails, the function shall raise
the development error ETH_E_UNINIT.⌋()
[SWS_Eth_00082] ⌈If development error detection is enabled: the function shall check
the parameter CtrlIdx for being valid. If the check fails, the function shall raise the
development error ETH_E_INV_CTRL_IDX.⌋()
[SWS_Eth_00083] ⌈If development error detection is enabled: the function shall check
the parameter BufIdxPtr for being valid. If the check fails, the function shall raise the
development error ETH_E_PARAM_POINTER.⌋()
[SWS_Eth_00084] ⌈If development error detection is enabled: the function shall check
the parameter BufPtr for being valid. If the check fails, the function shall raise the
development error ETH_E_PARAM_POINTER.⌋()
[SWS_Eth_00085] ⌈If development error detection is enabled: the function shall check
the parameter LenBytePtr for being valid. If the check fails, the function shall raise the
development error ETH_E_PARAM_POINTER.⌋()
[SWS_Eth_00086] ⌈Eth_Init() shall be called before Eth_ProvideTxBuffer().⌋()
Versionen & Provenienz · Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.
Begründung & Zuweisungs-Evidenz
Cited verbatim in the snippet (deterministic citation).
Dokumenten-Herkunft & Rückverfolgbarkeit
| Spezifikations-Dokument | SWS_EthernetDriver.pdf |
|---|---|
| Dokumentseite | Seite 91 |
| Ziel-Modul | eth (classic) |
| Ziel-Anforderung | SWS_Eth_91009 |
| Semantische Rolle | constitutive |
| Automatisierungs-Konfidenz | 0.95 |