Status response to BIOS_DISK_LDFS_OP.
Trigger: Sent after the LDFS driver has received BIOS_DISK_LDFS_OP and performed the requested operation.
Target: The link number that sent the BIOS_DISK_LDFS_OP call.
link_message(integer sender_num, integer [ident], string "BIOS_DISK_LDFS_RESP", key [status] + "|" + [response] + "|" + [operation])
| • integer | [ident] |
| • key | [status] + "|" + [response] + "|" + [operation] |
| Parameter | Description |
|---|---|
[ident] |
Integer. Will be the [ident] parameter passed with BIOS_DISK_LDFS_OP. |
[status] |
String. Will be the status of the operation. See table below. |
[response] |
Variable cast as string. Will be the response of the operation. See table below. |
[operation] |
Pipe-delimited ("|") list cast as string. Will be the [operation] parameter passed with BIOS_DISK_LDFS_OP.In other words, the key of this call will be [operation] with two additional elements added to the start. |
[status] |
Description |
|---|---|
| "ok" | The operation executed successfully. |
| "err0" | The command sent is not for a valid operation.[response] will also be "invalid op". |
| "err1" | The length of [operation] exceeded 1024 characters.[response] will also be "max op length exceeded". |
| "err2" | A [path] subparameter was not a valid directory.[response] will also be "non-dir parameter". |
| "err3" | A [path] or [path/file.ext] subparameter exceeded the maximum directory depth allowed by the filesystem. For more information, see the LDFS documentation.[response] will also be "max depth exceeded". |
| "err4" | A specified directory or file name is not a valid length.[response] will also be "invalid length". |
| "err5" | A [path] or [path/file.ext] subparameter has an invalid element in its path.[response] will also be "file inside path". |
| "err6" | A [path/file.ext] subparameter does not point to a valid file.[response] will also be "invalid format". |
| "err7" | A subparameter included an invalid character.[response] will also be "invalid char". |
| "err8" | The root of the LDFS filesystem is corrupted.[response] will also be "root error". |
| "err9" | A [path] subparameter points to a directory that already exists and is not being overwritten.[response] will also be "dir already exists". |
| "err10" | A [path/file.ext] subparameter points to a file that already exists and is not being overwritten.[response] will also be "file already exists". |
| "err11" | A [memory_bank] subparameter does not point to a valid RAM memory bank.[response] will also be "invalid memory bank". |
| "err12" | A blocking operation is already in progress.[response] will also be "op in progress". |
| "err13" | A RAM error occurred while attempting to perform the LDFS operation.[response] will also be "memory error". |
| "err14" | A [path/file.ext] subparameter points to a file that does not exist.[response] will also be "file not found". |
| "err15" | A [path] subparameter points to a directory that does not exist.[response] will also be "dir not found". |
| "err16" | A [path/file.ext] subparameter points to a file that is read-only and cannot be modified, or an executable stub file or symlink that cannot be modified using the attempted method.[response] will also be "file is read-only". |
| "err17" | A "DD" (Delete Directory) operation attempted to delete a directory that is not empty.[response] will also be "dir not empty". |
| "err18" | The operation failed because it would exceed the number of files allowed in a single directory by the filesystem. For more information, see the LDFS documentation.[response] will also be "max files in dir". |
| "err19" | The operation failed because it would copy an executable stub file, which is not allowed.[response] will also be "cannot copy stub". |
| "err20" | The operation failed because the [data] subparameter length exceeded the maximum allowed by the operation.[response] will also be "max data length exceeded". |
| "err21" | The operation failed because it would exceed the number of subdirectories allowed in a single directory by the filesystem. For more information, see the LDFS documentation.[response] will also be "max dirs in dir". |
| "err22" | A [path] or [path/file.ext] subparameter contains a broken symlink and could not be resolved.[response] will also be "broken symlink in path". |
| "err23" | A [path/file.ext] subparameter points to a file that is neither an executable stub nor symlink. The requested operation requires an executable stub or symlink.[response] will also be "non-stub/non-symlink file". |
| "err24" | A [path/file.ext] subparameter points to a file that is either an executable stub nor symlink. The requested operation cannot accept an executable stub or symlink.[response] will also be "stub/symlink file". |
| "err25" | An "XX" (Execute) operation failed due to an SCI error.[response] will also be "SCI execution error". |
If [status] is not "ok", [response] will be a short textual description of the error.
Otherwise, [response] depends on the command used:
[command] |
[response] |
|---|---|
| "AD" (Read Directory Attributes) | Integer cast as string. An integer representing the LDFS attribute bitfield of the directory. For more information on LDFS filesystem attributes, see the LDFS documentation. |
| "AF" (Read File Attributes) | Integer cast as string. An integer representing the LDFS attribute bitfield of the file. For more information on LDFS filesystem attributes, see the LDFS documentation. |
| "II" (Get Disk Info) | Plus-delimited ("+") list cast as string. A list of disk information in the following format: [bytes_free] + "+" + [bytes_total] + "+" + [disk_label][bytes_free] and [bytes_total] are the free and total bytes available for the disk, respectively.[disk_label] is the disk label, which can be changed using an "LL" (Write Disk Label) operation. |
| "RD" (Read Directory) | Integer cast as string. An integer representing the length of each entry in the list written to RAM. The format for the data in memory is a concatenated string of each subdirectory or file in the specified directory. Each entry is space-padded to a specified number of characters, which is the value returned by this system call. Therefore, it is very important that software incorporates this value when parsing the returned data - if software uses the original default lengths, it will break if the returned data format ever expands. The format returned for when [filter_type] is 0 (returns subdirectories only) is 8-character segments, which are each the directory name space-padded to the left, in uppercase, and sorted alphabetically. For example: "SUBDIR1 SUBDIR2 SUBDIR3 SUBDIR4 "The format returned for when [filter_type] is 1 (returns files only) is 15-character segments, which are each 2 characters for the file size, 1 character for the file attributes, and 12 characters for the file name space-padded to the left, in lowercase, and sorted alphabetically. For example: "400file1.txt 0b2file2.txt 1Q0config.dat "For information on how to interpret the file size and attributes listed in each file entry, see the LDFS documentation. It can be safely ignored if not needed for your application. |
| "RS" (Read Stub/Symlink) | String. The LSL script name of an executable stub file, or the [path] or [path/file.ext] target of a symlink. |
| "SF" (Read File Size) | Integer cast as string. The size of the file's contents, in characters (not necessarily bytes). The filesystem entry for the file will have some additional overhead that is not included in this value. |
For all other commands, [response] will be a blank string.