mirror of
https://git.busybox.net/busybox.git
synced 2024-12-15 00:13:26 +08:00
recode functions to shrink size
This commit is contained in:
parent
942e137679
commit
85cffcc83d
@ -1,3 +1,4 @@
|
||||
#include "busybox.h"
|
||||
#include <sys/types.h> /* Needed by dirent.h on netbsd */
|
||||
#include <stdio.h>
|
||||
#include <dirent.h>
|
||||
@ -30,8 +31,9 @@ int getversion (int fd, unsigned long * version);
|
||||
int iterate_on_dir (const char * dir_name,
|
||||
int (*func) (const char *, struct dirent *, void *),
|
||||
void * private);
|
||||
void list_super(struct ext2_super_block * s);
|
||||
/*void list_super(struct ext2_super_block * s);*/
|
||||
void list_super2(struct ext2_super_block * s, FILE *f);
|
||||
#define list_super(s) list_super2(s, stdout)
|
||||
void print_fs_errors (FILE * f, unsigned short errors);
|
||||
void print_flags (FILE * f, unsigned long flags, unsigned options);
|
||||
void print_fs_state (FILE * f, unsigned short state);
|
||||
|
@ -56,10 +56,10 @@ static struct feature feature_list[] = {
|
||||
|
||||
const char *e2p_feature2string(int compat, unsigned int mask)
|
||||
{
|
||||
struct feature *f;
|
||||
struct feature *f;
|
||||
static char buf[20];
|
||||
char fchar;
|
||||
int fnum;
|
||||
char fchar;
|
||||
int fnum;
|
||||
|
||||
for (f = feature_list; f->string; f++) {
|
||||
if ((compat == f->compat) &&
|
||||
@ -67,7 +67,7 @@ const char *e2p_feature2string(int compat, unsigned int mask)
|
||||
return f->string;
|
||||
}
|
||||
switch (compat) {
|
||||
case E2P_FEATURE_COMPAT:
|
||||
case E2P_FEATURE_COMPAT:
|
||||
fchar = 'C';
|
||||
break;
|
||||
case E2P_FEATURE_INCOMPAT:
|
||||
@ -81,15 +81,15 @@ const char *e2p_feature2string(int compat, unsigned int mask)
|
||||
break;
|
||||
}
|
||||
for (fnum = 0; mask >>= 1; fnum++);
|
||||
sprintf(buf, "FEATURE_%c%d", fchar, fnum);
|
||||
sprintf(buf, "FEATURE_%c%d", fchar, fnum);
|
||||
return buf;
|
||||
}
|
||||
|
||||
int e2p_string2feature(char *string, int *compat_type, unsigned int *mask)
|
||||
{
|
||||
struct feature *f;
|
||||
char *eptr;
|
||||
int num;
|
||||
struct feature *f;
|
||||
char *eptr;
|
||||
int num;
|
||||
|
||||
for (f = feature_list; f->string; f++) {
|
||||
if (!strcasecmp(string, f->string)) {
|
||||
@ -128,14 +128,14 @@ int e2p_string2feature(char *string, int *compat_type, unsigned int *mask)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static char *skip_over_blanks(char *cp)
|
||||
static inline char *skip_over_blanks(char *cp)
|
||||
{
|
||||
while (*cp && isspace(*cp))
|
||||
cp++;
|
||||
return cp;
|
||||
}
|
||||
|
||||
static char *skip_over_word(char *cp)
|
||||
static inline char *skip_over_word(char *cp)
|
||||
{
|
||||
while (*cp && !isspace(*cp) && *cp != ',')
|
||||
cp++;
|
||||
@ -187,4 +187,3 @@ int e2p_edit_feature(const char *str, __u32 *compat_array, __u32 *ok_array)
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -17,20 +17,20 @@
|
||||
#include "e2p.h"
|
||||
|
||||
struct hash {
|
||||
int num;
|
||||
const char *string;
|
||||
int num;
|
||||
const char *string;
|
||||
};
|
||||
|
||||
static struct hash hash_list[] = {
|
||||
{ EXT2_HASH_LEGACY, "legacy" },
|
||||
{ EXT2_HASH_HALF_MD4, "half_md4" },
|
||||
{ EXT2_HASH_TEA, "tea" },
|
||||
{ 0, 0 },
|
||||
{ EXT2_HASH_LEGACY, "legacy" },
|
||||
{ EXT2_HASH_HALF_MD4, "half_md4" },
|
||||
{ EXT2_HASH_TEA, "tea" },
|
||||
{ 0, 0 },
|
||||
};
|
||||
|
||||
const char *e2p_hash2string(int num)
|
||||
{
|
||||
struct hash *p;
|
||||
struct hash *p;
|
||||
static char buf[20];
|
||||
|
||||
for (p = hash_list; p->string; p++) {
|
||||
@ -46,9 +46,9 @@ const char *e2p_hash2string(int num)
|
||||
*/
|
||||
int e2p_string2hash(char *string)
|
||||
{
|
||||
struct hash *p;
|
||||
char *eptr;
|
||||
int num;
|
||||
struct hash *p;
|
||||
char *eptr;
|
||||
int num;
|
||||
|
||||
for (p = hash_list; p->string; p++) {
|
||||
if (!strcasecmp(string, p->string)) {
|
||||
@ -67,4 +67,3 @@ int e2p_string2hash(char *string)
|
||||
return -1;
|
||||
return num;
|
||||
}
|
||||
|
||||
|
@ -20,28 +20,18 @@
|
||||
|
||||
#include "e2p.h"
|
||||
|
||||
static void print_user (unsigned short uid, FILE *f)
|
||||
static void print_user(unsigned short uid, FILE *f)
|
||||
{
|
||||
struct passwd *pw;
|
||||
|
||||
fprintf(f, "%u ", uid);
|
||||
pw = getpwuid (uid);
|
||||
if (pw == NULL)
|
||||
fprintf(f, "(user unknown)\n");
|
||||
else
|
||||
fprintf(f, "(user %s)\n", pw->pw_name);
|
||||
struct passwd *pw = getpwuid(uid);
|
||||
fprintf(f, "%u (user %s)\n", uid,
|
||||
(pw == NULL ? "unknown" : pw->pw_name));
|
||||
}
|
||||
|
||||
static void print_group (unsigned short gid, FILE *f)
|
||||
static void print_group(unsigned short gid, FILE *f)
|
||||
{
|
||||
struct group *gr;
|
||||
|
||||
fprintf(f, "%u ", gid);
|
||||
gr = getgrgid (gid);
|
||||
if (gr == NULL)
|
||||
fprintf(f, "(group unknown)\n");
|
||||
else
|
||||
fprintf(f, "(group %s)\n", gr->gr_name);
|
||||
struct group *gr = getgrgid(gid);
|
||||
fprintf(f, "%u (group %s)\n", gid,
|
||||
(gr == NULL ? "unknown" : gr->gr_name));
|
||||
}
|
||||
|
||||
#define MONTH_INT (86400 * 30)
|
||||
@ -167,10 +157,12 @@ void list_super2(struct ext2_super_block * sb, FILE *f)
|
||||
strncpy(buf, sb->s_last_mounted, sizeof(sb->s_last_mounted));
|
||||
} else
|
||||
strcpy(buf, "<not available>");
|
||||
fprintf(f, "Last mounted on: %s\n", buf);
|
||||
fprintf(f, "Filesystem UUID: %s\n", e2p_uuid2str(sb->s_uuid));
|
||||
fprintf(f, "Filesystem magic number: 0x%04X\n", sb->s_magic);
|
||||
fprintf(f, "Filesystem revision #: %d", sb->s_rev_level);
|
||||
fprintf(f,
|
||||
"Last mounted on: %s\n"
|
||||
"Filesystem UUID: %s\n"
|
||||
"Filesystem magic number: 0x%04X\n"
|
||||
"Filesystem revision #: %d",
|
||||
buf, e2p_uuid2str(sb->s_uuid), sb->s_magic, sb->s_rev_level);
|
||||
if (sb->s_rev_level == EXT2_GOOD_OLD_REV) {
|
||||
fprintf(f, " (original)\n");
|
||||
#ifdef EXT2_DYNAMIC_REV
|
||||
@ -183,28 +175,34 @@ void list_super2(struct ext2_super_block * sb, FILE *f)
|
||||
print_mntopts(sb, f);
|
||||
fprintf(f, "Filesystem state: ");
|
||||
print_fs_state (f, sb->s_state);
|
||||
fprintf(f, "\n");
|
||||
fprintf(f, "Errors behavior: ");
|
||||
fprintf(f, "\nErrors behavior: ");
|
||||
print_fs_errors(f, sb->s_errors);
|
||||
fprintf(f, "\n");
|
||||
str = e2p_os2string(sb->s_creator_os);
|
||||
fprintf(f, "Filesystem OS type: %s\n", str);
|
||||
fprintf(f,
|
||||
"\n"
|
||||
"Filesystem OS type: %s\n"
|
||||
"Inode count: %u\n"
|
||||
"Block count: %u\n"
|
||||
"Reserved block count: %u\n"
|
||||
"Free blocks: %u\n"
|
||||
"Free inodes: %u\n"
|
||||
"First block: %u\n"
|
||||
"Block size: %u\n"
|
||||
"Fragment size: %u\n",
|
||||
str, sb->s_inodes_count, sb->s_blocks_count, sb->s_r_blocks_count,
|
||||
sb->s_free_blocks_count, sb->s_free_inodes_count,
|
||||
sb->s_first_data_block, EXT2_BLOCK_SIZE(sb), EXT2_FRAG_SIZE(sb));
|
||||
free(str);
|
||||
fprintf(f, "Inode count: %u\n", sb->s_inodes_count);
|
||||
fprintf(f, "Block count: %u\n", sb->s_blocks_count);
|
||||
fprintf(f, "Reserved block count: %u\n", sb->s_r_blocks_count);
|
||||
fprintf(f, "Free blocks: %u\n", sb->s_free_blocks_count);
|
||||
fprintf(f, "Free inodes: %u\n", sb->s_free_inodes_count);
|
||||
fprintf(f, "First block: %u\n", sb->s_first_data_block);
|
||||
fprintf(f, "Block size: %u\n", EXT2_BLOCK_SIZE(sb));
|
||||
fprintf(f, "Fragment size: %u\n", EXT2_FRAG_SIZE(sb));
|
||||
if (sb->s_reserved_gdt_blocks)
|
||||
fprintf(f, "Reserved GDT blocks: %u\n",
|
||||
sb->s_reserved_gdt_blocks);
|
||||
fprintf(f, "Blocks per group: %u\n", sb->s_blocks_per_group);
|
||||
fprintf(f, "Fragments per group: %u\n", sb->s_frags_per_group);
|
||||
fprintf(f, "Inodes per group: %u\n", sb->s_inodes_per_group);
|
||||
fprintf(f, "Inode blocks per group: %u\n", inode_blocks_per_group);
|
||||
fprintf(f,
|
||||
"Blocks per group: %u\n"
|
||||
"Fragments per group: %u\n"
|
||||
"Inodes per group: %u\n"
|
||||
"Inode blocks per group: %u\n",
|
||||
sb->s_blocks_per_group, sb->s_frags_per_group,
|
||||
sb->s_inodes_per_group, inode_blocks_per_group);
|
||||
if (sb->s_first_meta_bg)
|
||||
fprintf(f, "First meta block group: %u\n",
|
||||
sb->s_first_meta_bg);
|
||||
@ -216,13 +214,17 @@ void list_super2(struct ext2_super_block * sb, FILE *f)
|
||||
fprintf(f, "Last mount time: %s",
|
||||
sb->s_mtime ? ctime(&tm) : "n/a\n");
|
||||
tm = sb->s_wtime;
|
||||
fprintf(f, "Last write time: %s", ctime(&tm));
|
||||
fprintf(f, "Mount count: %u\n", sb->s_mnt_count);
|
||||
fprintf(f, "Maximum mount count: %d\n", sb->s_max_mnt_count);
|
||||
fprintf(f,
|
||||
"Last write time: %s"
|
||||
"Mount count: %u\n"
|
||||
"Maximum mount count: %d\n",
|
||||
ctime(&tm), sb->s_mnt_count, sb->s_max_mnt_count);
|
||||
tm = sb->s_lastcheck;
|
||||
fprintf(f, "Last checked: %s", ctime(&tm));
|
||||
fprintf(f, "Check interval: %u (%s)\n", sb->s_checkinterval,
|
||||
interval_string(sb->s_checkinterval));
|
||||
fprintf(f,
|
||||
"Last checked: %s"
|
||||
"Check interval: %u (%s)\n",
|
||||
ctime(&tm),
|
||||
sb->s_checkinterval, interval_string(sb->s_checkinterval));
|
||||
if (sb->s_checkinterval)
|
||||
{
|
||||
time_t next;
|
||||
@ -235,8 +237,10 @@ void list_super2(struct ext2_super_block * sb, FILE *f)
|
||||
fprintf(f, "Reserved blocks gid: ");
|
||||
print_group(sb->s_def_resgid, f);
|
||||
if (sb->s_rev_level >= EXT2_DYNAMIC_REV) {
|
||||
fprintf(f, "First inode: %d\n", sb->s_first_ino);
|
||||
fprintf(f, "Inode size: %d\n", sb->s_inode_size);
|
||||
fprintf(f,
|
||||
"First inode: %d\n"
|
||||
"Inode size: %d\n",
|
||||
sb->s_first_ino, sb->s_inode_size);
|
||||
}
|
||||
if (!e2p_is_null_uuid(sb->s_journal_uuid))
|
||||
fprintf(f, "Journal UUID: %s\n",
|
||||
@ -259,18 +263,9 @@ void list_super2(struct ext2_super_block * sb, FILE *f)
|
||||
e2p_uuid2str(sb->s_hash_seed));
|
||||
if (sb->s_jnl_backup_type) {
|
||||
fprintf(f, "Journal backup: ");
|
||||
switch (sb->s_jnl_backup_type) {
|
||||
case 1:
|
||||
if (sb->s_jnl_backup_type == 1)
|
||||
fprintf(f, "inode blocks\n");
|
||||
break;
|
||||
default:
|
||||
else
|
||||
fprintf(f, "type %u\n", sb->s_jnl_backup_type);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void list_super (struct ext2_super_block * s)
|
||||
{
|
||||
list_super2(s, stdout);
|
||||
}
|
||||
|
||||
|
@ -23,17 +23,17 @@ const char *os_tab[] =
|
||||
*/
|
||||
char *e2p_os2string(int os_type)
|
||||
{
|
||||
const char *os;
|
||||
char *ret;
|
||||
const char *os;
|
||||
char *ret;
|
||||
|
||||
if (os_type <= EXT2_OS_LITES)
|
||||
os = os_tab[os_type];
|
||||
else
|
||||
os = "(unknown os)";
|
||||
|
||||
ret = malloc(strlen(os)+1);
|
||||
strcpy(ret, os);
|
||||
return ret;
|
||||
ret = xmalloc(strlen(os)+1);
|
||||
strcpy(ret, os);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -41,8 +41,8 @@ char *e2p_os2string(int os_type)
|
||||
*/
|
||||
int e2p_string2os(char *str)
|
||||
{
|
||||
const char **cpp;
|
||||
int i = 0;
|
||||
const char **cpp;
|
||||
int i = 0;
|
||||
|
||||
for (cpp = os_tab; *cpp; cpp++, i++) {
|
||||
if (!strcasecmp(str, *cpp))
|
||||
|
@ -18,20 +18,14 @@
|
||||
|
||||
#include "e2p.h"
|
||||
|
||||
void print_fs_errors (FILE * f, unsigned short errors)
|
||||
void print_fs_errors(FILE *f, unsigned short errors)
|
||||
{
|
||||
switch (errors)
|
||||
{
|
||||
case EXT2_ERRORS_CONTINUE:
|
||||
fprintf (f, "Continue");
|
||||
break;
|
||||
case EXT2_ERRORS_RO:
|
||||
fprintf (f, "Remount read-only");
|
||||
break;
|
||||
case EXT2_ERRORS_PANIC:
|
||||
fprintf (f, "Panic");
|
||||
break;
|
||||
default:
|
||||
fprintf (f, "Unknown (continue)");
|
||||
char *disp = NULL;
|
||||
switch (errors) {
|
||||
case EXT2_ERRORS_CONTINUE: disp = "Continue"; break;
|
||||
case EXT2_ERRORS_RO: disp = "Remount read-only"; break;
|
||||
case EXT2_ERRORS_PANIC: disp = "Panic"; break;
|
||||
default: disp = "Unknown (continue)";
|
||||
}
|
||||
fprintf(f, disp);
|
||||
}
|
||||
|
@ -71,4 +71,3 @@ void print_flags (FILE * f, unsigned long flags, unsigned options)
|
||||
if (long_opt && first)
|
||||
fputs("---", f);
|
||||
}
|
||||
|
||||
|
@ -18,12 +18,9 @@
|
||||
|
||||
#include "e2p.h"
|
||||
|
||||
void print_fs_state (FILE * f, unsigned short state)
|
||||
void print_fs_state(FILE *f, unsigned short state)
|
||||
{
|
||||
if (state & EXT2_VALID_FS)
|
||||
fprintf (f, " clean");
|
||||
else
|
||||
fprintf (f, " not clean");
|
||||
fprintf(f, (state & EXT2_VALID_FS ? " clean" : " not clean"));
|
||||
if (state & EXT2_ERROR_FS)
|
||||
fprintf (f, " with errors");
|
||||
}
|
||||
|
@ -70,10 +70,8 @@ void e2p_uuid_to_str(void *uu, char *out)
|
||||
const char *e2p_uuid2str(void *uu)
|
||||
{
|
||||
static char buf[80];
|
||||
|
||||
if (e2p_is_null_uuid(uu))
|
||||
return "<none>";
|
||||
e2p_uuid_to_str(uu, buf);
|
||||
return buf;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user