* Convert our mount options object back into a string that the
* rest of the world can use.
*
- * Returns 1 if the string was successfully created; otherwise
- * zero. Upon return, @string contains the address of a
- * replacement C string containing a comma-delimited list of
- * mount options and values; or the passed-in string is freed
- * and NULL is returned if some failure occurred.
+ * Upon return, @string contains the address of a replacement
+ * C string containing a comma-delimited list of mount options
+ * and values; or the passed-in string is freed and NULL is
+ * returned if some failure occurred.
*/
-int po_join(struct mount_options *options, char **str)
+po_return_t po_join(struct mount_options *options, char **str)
{
size_t len = 0;
struct mount_option *option;
* @options: pointer to mount options
* @option: pointer to a C string containing the option to add
*
- * Returns 1 if the list was successfully concatenated; otherwise
- * zero.
*/
-int po_append(struct mount_options *options, char *str)
+po_return_t po_append(struct mount_options *options, char *str)
{
struct mount_option *option = option_create(str);
* @options: pointer to mount options
* @keyword: pointer to a C string containing option keyword for which to search
*
- * Returns 1 if the option is present in the list; otherwise zero.
*/
-int po_contains(struct mount_options *options, char *keyword)
+po_found_t po_contains(struct mount_options *options, char *keyword)
{
struct mount_option *option;
*
* This function can be used to determine which of two similar
* options will be the one to take effect.
- *
- * Returns 1 if key2 is rightmost or key1 is not present.
- * Returns -1 if key1 is rightmost or key2 is not present.
- * Returns 0 if neither key is present.
*/
-int po_rightmost(struct mount_options *options, char *key1, char *key2)
+po_rightmost_t po_rightmost(struct mount_options *options,
+ char *key1, char *key2)
{
struct mount_option *option;
}
}
- return PO_NOT_FOUND;
+ return PO_NEITHER_FOUND;
}
/**
* @options: pointer to mount options
* @keyword: pointer to a C string containing an option keyword to remove
*
- * Returns 1 if the option was found and removed; passed-in list is
- * truncated upon return; otherwise zero.
+ * Side-effect: the passed-in list is truncated on success.
*/
-int po_remove_all(struct mount_options *options, char *keyword)
+po_found_t po_remove_all(struct mount_options *options, char *keyword)
{
struct mount_option *option, *next;
int found = PO_NOT_FOUND;
*
*/
-enum {
+typedef enum {
PO_FAILED = 0,
PO_SUCCEEDED = 1,
-};
+} po_return_t;
-enum {
+typedef enum {
PO_NOT_FOUND = 0,
PO_FOUND = 1,
-};
+} po_found_t;
-enum {
- PO_KEY2_RIGHTMOST = 1,
+typedef enum {
PO_KEY1_RIGHTMOST = -1,
-};
+ PO_NEITHER_FOUND = 0,
+ PO_KEY2_RIGHTMOST = 1,
+} po_rightmost_t;
struct mount_options;
struct mount_options * po_split(char *);
void po_replace(struct mount_options *,
struct mount_options *);
-int po_join(struct mount_options *, char **);
+po_return_t po_join(struct mount_options *, char **);
-int po_append(struct mount_options *, char *);
-int po_contains(struct mount_options *, char *);
+po_return_t po_append(struct mount_options *, char *);
+po_found_t po_contains(struct mount_options *, char *);
char * po_get(struct mount_options *, char *);
-int po_rightmost(struct mount_options *, char *, char *);
-int po_remove_all(struct mount_options *, char *);
+po_rightmost_t po_rightmost(struct mount_options *, char *, char *);
+po_found_t po_remove_all(struct mount_options *, char *);
void po_destroy(struct mount_options *);