(root)/
util-linux-2.39/
libfdisk/
src/
field.c
       1  
       2  #include "fdiskP.h"
       3  
       4  /**
       5   * SECTION: field
       6   * @title: Field
       7   * @short_description: description of the partition fields
       8   *
       9   * The fdisk fields are static user-friendly descriptions of the partition. The
      10   * fields are used to avoid label specific stuff in the functions that list disk
      11   * partitions (e.g. fdisk -l). The field Id is the same as Id for fdisk_partition_to_string().
      12   *
      13   * <informalexample>
      14   *   <programlisting>
      15   * int *ids;
      16   * size_t nids;
      17   * struct fdisk_partition *pa = NULL;
      18   * struct fdisk_label *lb = fdisk_get_label(cxt, NULL);
      19   *
      20   * fdisk_label_get_fields_ids(lb, cxt, &ids, &nids);
      21   *
      22   * fdisk_get_partition(cxt, 0, &pa);
      23   *
      24   * for (i = 0; i < nids; i++) {
      25   *	const struct fdisk_field *field = fdisk_label_get_field(lb, ids[i]);
      26   *
      27   *	int id = fdisk_field_get_id(fl);
      28   *	const char *name = fdisk_field_get_name(fl);
      29   *	char *data;
      30   *
      31   *	fdisk_partition_to_string(pa, id, &data);
      32   *	printf("%s: %s\n", name, data);
      33   *	free(data);
      34   * }
      35   * free(ids);
      36   *    </programlisting>
      37   * </informalexample>
      38   *
      39   * This example lists all information about the first partition. It will work
      40   * for MBR as well as for GPT because fields are not hardcoded in the example.
      41   *
      42   * See also fdisk_label_get_field_by_name(), fdisk_label_get_fields_ids_all()
      43   * and fdisk_label_get_fields_ids().
      44   */
      45  
      46  /**
      47   * fdisk_field_get_id:
      48   * @field: field instance
      49   *
      50   * Returns: field Id (FDISK_FIELD_*)
      51   */
      52  int fdisk_field_get_id(const struct fdisk_field *field)
      53  {
      54  	return field ? field->id : -EINVAL;
      55  }
      56  
      57  /**
      58   * fdisk_field_get_name:
      59   * @field: field instance
      60   *
      61   * Returns: field name
      62   */
      63  const char *fdisk_field_get_name(const struct fdisk_field *field)
      64  {
      65  	return field ? field->name : NULL;
      66  }
      67  
      68  /**
      69   * fdisk_field_get_width:
      70   * @field: field instance
      71   *
      72   * Returns: libsmartcols compatible width.
      73   */
      74  double fdisk_field_get_width(const struct fdisk_field *field)
      75  {
      76  	return field ? field->width : -EINVAL;
      77  }
      78  
      79  /**
      80   * fdisk_field_is_number:
      81   * @field: field instance
      82   *
      83   * Returns: 1 if field represent number
      84   */
      85  int fdisk_field_is_number(const struct fdisk_field *field)
      86  {
      87  	return field->flags ? field->flags & FDISK_FIELDFL_NUMBER : 0;
      88  }