recode functions to shrink size

This commit is contained in:
Mike Frysinger 2005-06-11 00:08:50 +00:00
parent 942e137679
commit 85cffcc83d
9 changed files with 92 additions and 109 deletions

View File

@ -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);

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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);
}

View File

@ -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))

View File

@ -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);
}

View File

@ -71,4 +71,3 @@ void print_flags (FILE * f, unsigned long flags, unsigned options)
if (long_opt && first)
fputs("---", f);
}

View File

@ -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");
}

View File

@ -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;
}