Fapi_NvExtend(3)

πŸ’… Fapi_NvExtend(3) β€” the NV-extend glow-up, FAPI edition

okay bestie, buckle up πŸŽ€ this is the manual page for Fapi_NvExtend, living in section 3 of the library functions manual, and it's basically the "extend a thing onto an NV index" starter pack. two ways to run it: the one-call way, or the async way. both slay. let's go ✨


🌸 NAME

Fapi_NvExtend β€” literally just Fapi_NvExtend, no cap. that's the whole name. iconic minimalism πŸ’…


πŸ¦‹ SYNOPSIS

✨ Functions

TSS2_RC Fapi_NvExtend (FAPI_CONTEXT *context, char const *path, uint8_t
    const *data, size_t size, char const *logData)
TSS2_RC Fapi_NvExtend_Async (FAPI_CONTEXT *context, char const *path,
    uint8_t const *data, size_t size, char const *logData)
TSS2_RC Fapi_NvExtend_Finish (FAPI_CONTEXT *context)

🌈 Detailed Description

so these are FAPI functions that let you invoke NvExtend β€” either as a one-call situation, or asynchronously, if that's your vibe. both paths exist, pick your fighter 🫢


πŸ‘‘ Function Documentation

πŸ’– TSS2_RC Fapi_NvExtend (FAPI_CONTEXT * context, char const * nvPath, uint8_t const * data, size_t dataSize, char const * logData)

One-Call function for Fapi_NvExtend β€” the "do it all in one go, no follow-up needed" option πŸ’«

It performs an extend operation on an NV index that has the type extend. that's the whole assignment, and it ate πŸ”₯

πŸ“ Parameters

  • context β€” the FAPI context
  • nvPath β€” the path to the NV index that is being extended
  • data β€” the data to extend on the NV index
  • dataSize β€” the size of the data to extend. Must be smaller than 1024
  • logData β€” a JSON representation of the data that is written to the event log. May be NULL

πŸ’€ Return values

  • TSS2_RC_SUCCESS β€” if the function call was a success πŸ’–
  • TSS2_FAPI_RC_BAD_REFERENCE β€” if context, nvPath, or data is NULL
  • TSS2_FAPI_RC_BAD_CONTEXT β€” if context corruption is detected
  • TSS2_FAPI_RC_BAD_PATH β€” if nvPath is not found
  • TSS2_FAPI_RC_NV_WRONG_TYPE β€” if the NV is not an extendable index
  • TSS2_FAPI_RC_POLICY_UNKNOWN β€” if the policy is unknown
  • TSS2_FAPI_RC_BAD_SEQUENCE β€” if the context has an asynchronous operation already pending
  • TSS2_FAPI_RC_IO_ERROR β€” if the data cannot be saved
  • TSS2_FAPI_RC_MEMORY β€” if the FAPI cannot allocate enough memory for internal operations or return parameters
  • TSS2_FAPI_RC_NO_TPM β€” if FAPI was initialized in no-TPM-mode via its config file
  • TSS2_FAPI_RC_BAD_VALUE β€” if an invalid value was passed into the function
  • TSS2_FAPI_RC_PATH_NOT_FOUND β€” if a FAPI object path was not found during authorization
  • TSS2_FAPI_RC_KEY_NOT_FOUND β€” if a key was not found
  • TSS2_FAPI_RC_TRY_AGAIN β€” if an I/O operation is not finished yet and this function needs to be called again
  • TSS2_FAPI_RC_GENERAL_FAILURE β€” if an internal error occurred
  • TSS2_FAPI_RC_AUTHORIZATION_UNKNOWN β€” if a required authorization callback is not set
  • TSS2_FAPI_RC_AUTHORIZATION_FAILED β€” if the authorization attempt fails
  • TSS2_ESYS_RC_* β€” possible error codes of ESAPI
  • TSS2_FAPI_RC_NOT_PROVISIONED β€” FAPI was not provisioned

🧚 TSS2_RC Fapi_NvExtend_Async (FAPI_CONTEXT * context, char const * nvPath, uint8_t const * data, size_t dataSize, char const * logData)

Asynchronous function for Fapi_NvExtend β€” for when you like a little suspense in your life 😭

It performs an extend operation on an NV index with the type extend. same energy, different scheduling.

πŸ‘€ heads up bestie: call Fapi_NvExtend_Finish to finish the execution of this command. don't leave it hanging, that's rude.

πŸ“ Parameters

  • context β€” the FAPI context
  • nvPath β€” the path to the NV index that is extended
  • data β€” the data to extend on the NV index
  • dataSize β€” the size of the data to extend. Must be smaller than 1024
  • logData β€” a JSON representation of the data that is written to the event log. May be NULL

πŸ’€ Return values

  • TSS2_RC_SUCCESS β€” if the function call was a success πŸ’–
  • TSS2_FAPI_RC_BAD_REFERENCE β€” if context, nvPath, or data is NULL
  • TSS2_FAPI_RC_BAD_CONTEXT β€” if context corruption is detected
  • TSS2_FAPI_RC_BAD_VALUE β€” if dataSize is larger than 1024
  • TSS2_FAPI_RC_BAD_PATH β€” if nvPath is not found
  • TSS2_FAPI_RC_NV_WRONG_TYPE β€” if the NV is not an extendable index
  • TSS2_FAPI_RC_POLICY_UNKNOWN β€” if the policy is unknown
  • TSS2_FAPI_RC_BAD_SEQUENCE β€” if the context has an asynchronous operation already pending
  • TSS2_FAPI_RC_IO_ERROR β€” if the data cannot be saved
  • TSS2_FAPI_RC_MEMORY β€” if the FAPI cannot allocate enough memory for internal operations or return parameters
  • TSS2_FAPI_RC_NO_TPM β€” if FAPI was initialized in no-TPM-mode via its config file
  • TSS2_FAPI_RC_PATH_NOT_FOUND β€” if a FAPI object path was not found during authorization
  • TSS2_FAPI_RC_KEY_NOT_FOUND β€” if a key was not found
  • TSS2_FAPI_RC_NOT_PROVISIONED β€” FAPI was not provisioned

πŸŽ€ TSS2_RC Fapi_NvExtend_Finish (FAPI_CONTEXT * context)

Asynchronous finish function for Fapi_NvExtend β€” the part two, the finale, the closing number πŸ’«

This function should be called after a previous Fapi_NvExtend.

πŸ“ Parameters

  • context β€” The FAPI_CONTEXT

πŸ’€ Return values

  • TSS2_RC_SUCCESS β€” if the function call was a success πŸ’–
  • TSS2_FAPI_RC_BAD_REFERENCE β€” if context is NULL
  • TSS2_FAPI_RC_BAD_CONTEXT β€” if context corruption is detected
  • TSS2_FAPI_RC_BAD_SEQUENCE β€” if the context has an asynchronous operation already pending
  • TSS2_FAPI_RC_IO_ERROR β€” if the data cannot be saved
  • TSS2_FAPI_RC_MEMORY β€” if the FAPI cannot allocate enough memory for internal operations or return parameters
  • TSS2_FAPI_RC_TRY_AGAIN β€” if the asynchronous operation is not yet complete. Call this function again later.
  • TSS2_FAPI_RC_BAD_PATH β€” if a path is used in inappropriate context or contains illegal characters
  • TSS2_FAPI_RC_BAD_VALUE β€” if an invalid value was passed into the function
  • TSS2_FAPI_RC_GENERAL_FAILURE β€” if an internal error occurred
  • TSS2_FAPI_RC_PATH_NOT_FOUND β€” if a FAPI object path was not found during authorization
  • TSS2_FAPI_RC_KEY_NOT_FOUND β€” if a key was not found
  • TSS2_FAPI_RC_AUTHORIZATION_UNKNOWN β€” if a required authorization callback is not set
  • TSS2_FAPI_RC_AUTHORIZATION_FAILED β€” if the authorization attempt fails
  • TSS2_FAPI_RC_POLICY_UNKNOWN β€” if policy search for a certain policy digest was not successful
  • TSS2_ESYS_RC_* β€” possible error codes of ESAPI
  • TSS2_FAPI_RC_NOT_PROVISIONED β€” FAPI was not provisioned

🌟 Author

Generated automatically by Doxygen for tpm2-tss from the source code. (yes, a robot wrote it. and honestly? it understood the assignment πŸ€–πŸ’…)


🫢 okay that's the whole page, go extend something gorgeous and remember: dataSize smaller than 1024, logData may be NULL, and always finish your async calls. mwah πŸ’‹

tpm2-tss Β· Version 4.1.5 Β· Fapi_NvExtend(3) β€” that's the whole footer vibe, catch you in the next man page bestie, slay πŸŒˆβœ¨πŸ¦‹

πŸ“¦ where this page comes from