/**************************************************************************/ /* */ /* Copyright (c) Microsoft Corporation. All rights reserved. */ /* */ /* This software is licensed under the Microsoft Software License */ /* Terms for Microsoft Azure RTOS. Full text of the license can be */ /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ /* and in the root directory of this software. */ /* */ /**************************************************************************/ /**************************************************************************/ /**************************************************************************/ /** */ /** FileX Component */ /** */ /** Unicode */ /** */ /**************************************************************************/ /**************************************************************************/ #define FX_SOURCE_CODE /* Include necessary system files. */ #include "fx_api.h" #include "fx_unicode.h" FX_CALLER_CHECKING_EXTERNS /**************************************************************************/ /* */ /* FUNCTION RELEASE */ /* */ /* _fxe_unicode_file_create PORTABLE C */ /* 6.1 */ /* AUTHOR */ /* */ /* William E. Lamie, Microsoft Corporation */ /* */ /* DESCRIPTION */ /* */ /* This function checks for errors in the Unicode file create service. */ /* */ /* INPUT */ /* */ /* media_ptr Pointer to media */ /* source_unicode_name Pointer to source unicode name*/ /* source_unicode_length Unicode name length */ /* short_name Designated short name */ /* */ /* OUTPUT */ /* */ /* Completion Status */ /* */ /* CALLS */ /* */ /* _fx_unicode_file_create Actual Unicode file create */ /* service */ /* */ /* CALLED BY */ /* */ /* Application Code */ /* */ /* RELEASE HISTORY */ /* */ /* DATE NAME DESCRIPTION */ /* */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 09-30-2020 William E. Lamie Modified comment(s), */ /* resulting in version 6.1 */ /* */ /**************************************************************************/ UINT _fxe_unicode_file_create(FX_MEDIA *media_ptr, UCHAR *source_unicode_name, ULONG source_unicode_length, CHAR *short_name) { UINT status, i; /* Check for a NULL media or name pointers. */ if ((media_ptr == FX_NULL) || (source_unicode_name == FX_NULL) || (source_unicode_length == 0) || (short_name == FX_NULL)) { return(FX_PTR_ERROR); } /* Check for a valid caller. */ FX_CALLER_CHECKING_CODE /* Check unicode zero in source_unicode_name */ for (i = 0; i < (source_unicode_length << 1); i += 2) { if ((source_unicode_name[i] == 0) && (source_unicode_name[i + 1] == 0)) { return(FX_INVALID_NAME); } } /* Call actual Unicode file create service. */ status = _fx_unicode_file_create(media_ptr, source_unicode_name, source_unicode_length, short_name); /* Return status to the caller. */ return(status); }