Changes in uspace/app/df/df.c [c111da2:c24b0dcb] in mainline
- File:
-
- 1 edited
-
uspace/app/df/df.c (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/df/df.c
rc111da2 rc24b0dcb 1 1 /* 2 * Copyright (c) 2025 Jiri Svoboda3 2 * Copyright (c) 2013 Manuele Conti 4 3 * All rights reserved. … … 57 56 static bool display_blocks; 58 57 58 static errno_t size_to_human_readable(uint64_t, size_t, char **); 59 59 static void print_header(void); 60 static voidprint_statfs(vfs_statfs_t *, char *, char *);60 static errno_t print_statfs(vfs_statfs_t *, char *, char *); 61 61 static void print_usage(void); 62 62 … … 65 65 int optres, errflg = 0; 66 66 vfs_statfs_t st; 67 errno_t rc; 67 68 68 69 display_blocks = false; … … 108 109 list_foreach(mtab_list, link, mtab_ent_t, mtab_ent) { 109 110 if (vfs_statfs_path(mtab_ent->mp, &st) == 0) { 110 print_statfs(&st, mtab_ent->fs_name, mtab_ent->mp); 111 rc = print_statfs(&st, mtab_ent->fs_name, mtab_ent->mp); 112 if (rc != EOK) 113 return 1; 111 114 } else { 112 115 fprintf(stderr, "Cannot get information for '%s' (%s).\n", … … 119 122 } 120 123 124 static errno_t size_to_human_readable(uint64_t nblocks, size_t block_size, char **rptr) 125 { 126 capa_spec_t capa; 127 128 capa_from_blocks(nblocks, block_size, &capa); 129 capa_simplify(&capa); 130 return capa_format(&capa, rptr); 131 } 132 121 133 static void print_header(void) 122 134 { … … 129 141 } 130 142 131 static voidprint_statfs(vfs_statfs_t *st, char *name, char *mountpoint)143 static errno_t print_statfs(vfs_statfs_t *st, char *name, char *mountpoint) 132 144 { 133 145 uint64_t const used_blocks = st->f_blocks - st->f_bfree; 134 146 unsigned const perc_used = PERCENTAGE(used_blocks, st->f_blocks); 135 char str[CAPA_BLOCKS_BUFSIZE]; 147 char *str; 148 errno_t rc; 136 149 137 150 printf("%10s", name); … … 139 152 if (!display_blocks) { 140 153 /* Print size */ 141 capa_blocks_format_buf(st->f_blocks, st->f_bsize, str, 142 sizeof(str)); 154 rc = size_to_human_readable(st->f_blocks, st->f_bsize, &str); 155 if (rc != EOK) 156 goto error; 143 157 printf(" %14s", str); 158 free(str); 144 159 145 160 /* Number of used blocks */ 146 capa_blocks_format_buf(used_blocks, st->f_bsize, str, 147 sizeof(str)); 161 rc = size_to_human_readable(used_blocks, st->f_bsize, &str); 162 if (rc != EOK) 163 goto error; 148 164 printf(" %14s", str); 165 free(str); 149 166 150 167 /* Number of available blocks */ 151 capa_blocks_format_buf(st->f_bfree, st->f_bsize, str, 152 sizeof(str)); 168 rc = size_to_human_readable(st->f_bfree, st->f_bsize, &str); 169 if (rc != EOK) 170 goto error; 153 171 printf(" %14s", str); 172 free(str); 154 173 155 174 /* Percentage of used blocks */ … … 164 183 perc_used, mountpoint); 165 184 } 185 186 return EOK; 187 error: 188 printf("\nError: Out of memory.\n"); 189 return ENOMEM; 166 190 } 167 191
Note:
See TracChangeset
for help on using the changeset viewer.
