grub2: bring back build of aros-side grub2 tools
[AROS.git] / rom / partition / getfilesystemattrsa.c
blob2f8dfdcd3680a1d9147ec79b7fa7d89026552c50
1 /*
2 Copyright © 2011, The AROS Development Team. All rights reserved.
3 $Id$
5 */
7 #include <proto/utility.h>
9 #include "partition_support.h"
10 #include "platform.h"
12 /*****************************************************************************
14 NAME */
15 #include <utility/tagitem.h>
16 #include <libraries/partition.h>
18 AROS_LH2(void, GetFileSystemAttrsA,
20 /* SYNOPSIS */
21 AROS_LHA(struct Node *, handle, A1),
22 AROS_LHA(struct TagItem *, taglist, A2),
24 /* LOCATION */
25 struct Library *, PartitionBase, 22, Partition)
27 /* FUNCTION
28 get attributes of a partition table
30 INPUTS
31 handle - Filesystem handle
32 taglist - list of attributes; unknown tags are ignored
33 FST_ID (ULONG *) - Get 4-characters filesystem ID
34 FST_NAME (STRPTR *) - Get a pointer to filesystem name
35 FST_FSENTRY (struct FileSysEntry *) - Fill in the given struct FileSysEntry.
37 RESULT
38 None.
40 NOTES
41 Name is returned as a pointer to internally allocated string. You should copy
42 it if you want to keep it after filesystem's partition table had been closed.
44 The following fields in struct FileSysEntry will not be filled in:
45 - Node name
46 - fse_Handler
47 - fse_SegList
48 You need to query for filesystem's name separately and copy it into BSTR
49 yourself, if you need to. Loading the handler is done by LoadFileSystem()
50 function.
52 EXAMPLE
54 BUGS
56 SEE ALSO
57 FindFileSystemA()
59 INTERNALS
61 HISTORY
63 *****************************************************************************/
65 AROS_LIBFUNC_INIT
67 const struct FSFunctionTable *handler = ((struct FileSysHandle *)handle)->handler;
68 struct TagItem *tag;
70 while ((tag = NextTagItem((struct TagItem **)&taglist)))
72 handler->getFileSystemAttr(PartitionBase, (struct FileSysHandle *)handle, tag);
75 * TODO: handler returns TRUE if it knows the attrubute and FALSE otherwise.
76 * If we ever have more partition table types which can handle embedded
77 * filesystem handlers, this can be expanded similar to GetPartitionAttrs(),
78 * and we will have some generic code here.
82 AROS_LIBFUNC_EXIT