c/3691: gcc internal compiler error

generica@email.com generica@email.com
Sat Jul 14 20:16:00 GMT 2001


>Number:         3691
>Category:       c
>Synopsis:       Internal compiler error recieved
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Jul 14 20:16:00 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator:     root
>Release:        3.0
>Organization:
>Environment:
System: Linux lapsis 2.4.6-ac2 #2 Wed Jul 11 12:09:26 EST 2001 i586 unknown
Architecture: i586

	
host: i586-pc-linux-gnu
build: i586-pc-linux-gnu
target: i586-pc-linux-gnu
configured with: ../../toinstall/gcc-3.0/configure --prefix=/usr --disable-nls --with-gxx-include-dir=/usr/include/g++ --enable-languages=c,c++,java
>Description:
	Received when compiling gnu parted
>How-To-Repeat:
	compiled with -O3, no other options necessary
        
# 20 "ext2_mkfs.c"
static const char _ext2_mkfs_c[] = "$Id: ext2_mkfs.c,v 1.4 1999/10/10 07:57:55 buytenh Exp $";


# 1 "config.h" 1
# 24 "ext2_mkfs.c" 2

# 1 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stdio.h" 1 3
# 36 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stdio.h" 3
# 1 "/usr/include/features.h" 1 3
# 283 "/usr/include/features.h" 3
# 1 "/usr/include/sys/cdefs.h" 1 3
# 284 "/usr/include/features.h" 2 3
# 311 "/usr/include/features.h" 3
# 1 "/usr/include/gnu/stubs.h" 1 3
# 312 "/usr/include/features.h" 2 3
# 37 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stdio.h" 2 3





# 1 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stddef.h" 1 3
# 199 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stddef.h" 3
typedef unsigned int size_t;
# 43 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stdio.h" 2 3

# 1 "/usr/include/bits/types.h" 1 3
# 26 "/usr/include/bits/types.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/bits/types.h" 2 3


# 1 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stddef.h" 1 3
# 30 "/usr/include/bits/types.h" 2 3


typedef unsigned char __u_char;
typedef unsigned short __u_short;
typedef unsigned int __u_int;
typedef unsigned long __u_long;

__extension__ typedef unsigned long long int __u_quad_t;
__extension__ typedef long long int __quad_t;
# 49 "/usr/include/bits/types.h" 3
typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;

__extension__ typedef signed long long int __int64_t;
__extension__ typedef unsigned long long int __uint64_t;

typedef __quad_t *__qaddr_t;

typedef __u_quad_t __dev_t;
typedef __u_int __uid_t;
typedef __u_int __gid_t;
typedef __u_long __ino_t;
typedef __u_int __mode_t;
typedef __u_int __nlink_t;
typedef long int __off_t;
typedef __quad_t __loff_t;
typedef int __pid_t;
typedef int __ssize_t;
typedef __u_long __rlim_t;
typedef __u_quad_t __rlim64_t;
typedef __u_int __id_t;

typedef struct
  {
    int __val[2];
  } __fsid_t;


typedef int __daddr_t;
typedef char *__caddr_t;
typedef long int __time_t;
typedef unsigned int __useconds_t;
typedef long int __suseconds_t;
typedef long int __swblk_t;

typedef long int __clock_t;


typedef int __clockid_t;


typedef int __timer_t;






typedef int __key_t;


typedef unsigned short int __ipc_pid_t;



typedef long int __blksize_t;




typedef long int __blkcnt_t;
typedef __quad_t __blkcnt64_t;


typedef __u_long __fsblkcnt_t;
typedef __u_quad_t __fsblkcnt64_t;


typedef __u_long __fsfilcnt_t;
typedef __u_quad_t __fsfilcnt64_t;


typedef __u_quad_t __ino64_t;


typedef __loff_t __off64_t;


typedef long int __t_scalar_t;
typedef unsigned long int __t_uscalar_t;


typedef int __intptr_t;


typedef unsigned int __socklen_t;




# 1 "/usr/include/bits/pthreadtypes.h" 1 3
# 23 "/usr/include/bits/pthreadtypes.h" 3
# 1 "/usr/include/bits/sched.h" 1 3
# 68 "/usr/include/bits/sched.h" 3
struct __sched_param
  {
    int __sched_priority;
  };
# 24 "/usr/include/bits/pthreadtypes.h" 2 3


struct _pthread_fastlock
{
  long int __status;
  int __spinlock;

};



typedef struct _pthread_descr_struct *_pthread_descr;





typedef struct __pthread_attr_s
{
  int __detachstate;
  int __schedpolicy;
  struct __sched_param __schedparam;
  int __inheritsched;
  int __scope;
  size_t __guardsize;
  int __stackaddr_set;
  void *__stackaddr;
  size_t __stacksize;
} pthread_attr_t;



typedef struct
{
  struct _pthread_fastlock __c_lock;
  _pthread_descr __c_waiting;
} pthread_cond_t;



typedef struct
{
  int __dummy;
} pthread_condattr_t;


typedef unsigned int pthread_key_t;





typedef struct
{
  int __m_reserved;
  int __m_count;
  _pthread_descr __m_owner;
  int __m_kind;
  struct _pthread_fastlock __m_lock;
} pthread_mutex_t;



typedef struct
{
  int __mutexkind;
} pthread_mutexattr_t;



typedef int pthread_once_t;
# 140 "/usr/include/bits/pthreadtypes.h" 3
typedef unsigned long int pthread_t;
# 144 "/usr/include/bits/types.h" 2 3
# 45 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stdio.h" 2 3
# 53 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stdio.h" 3
typedef struct _IO_FILE FILE;
# 63 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stdio.h" 3
typedef struct _IO_FILE __FILE;
# 73 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stdio.h" 3
# 1 "/usr/include/libio.h" 1 3
# 30 "/usr/include/libio.h" 3
# 1 "/usr/include/_G_config.h" 1 3
# 9 "/usr/include/_G_config.h" 3
# 1 "/usr/include/bits/types.h" 1 3
# 10 "/usr/include/_G_config.h" 2 3




# 1 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stddef.h" 1 3
# 287 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stddef.h" 3
typedef long int wchar_t;
# 312 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stddef.h" 3
typedef unsigned int wint_t;
# 15 "/usr/include/_G_config.h" 2 3
# 24 "/usr/include/_G_config.h" 3
# 1 "/usr/include/wchar.h" 1 3
# 48 "/usr/include/wchar.h" 3
# 1 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stddef.h" 1 3
# 49 "/usr/include/wchar.h" 2 3

# 1 "/usr/include/bits/wchar.h" 1 3
# 51 "/usr/include/wchar.h" 2 3
# 67 "/usr/include/wchar.h" 3
typedef struct
{
  int __count;
  union
  {
    wint_t __wch;
    char __wchb[4];
  } __value;
} __mbstate_t;
# 25 "/usr/include/_G_config.h" 2 3

typedef struct
{
  __off_t __pos;
  __mbstate_t __state;
} _G_fpos_t;
typedef struct
{
  __off64_t __pos;
  __mbstate_t __state;
} _G_fpos64_t;
# 44 "/usr/include/_G_config.h" 3
# 1 "/usr/include/gconv.h" 1 3
# 26 "/usr/include/gconv.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/gconv.h" 2 3

# 1 "/usr/include/wchar.h" 1 3
# 48 "/usr/include/wchar.h" 3
# 1 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stddef.h" 1 3
# 49 "/usr/include/wchar.h" 2 3

# 1 "/usr/include/bits/wchar.h" 1 3
# 51 "/usr/include/wchar.h" 2 3
# 29 "/usr/include/gconv.h" 2 3

# 1 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stddef.h" 1 3
# 31 "/usr/include/gconv.h" 2 3





enum
{
  __GCONV_OK = 0,
  __GCONV_NOCONV,
  __GCONV_NODB,
  __GCONV_NOMEM,

  __GCONV_EMPTY_INPUT,
  __GCONV_FULL_OUTPUT,
  __GCONV_ILLEGAL_INPUT,
  __GCONV_INCOMPLETE_INPUT,

  __GCONV_ILLEGAL_DESCRIPTOR,
  __GCONV_INTERNAL_ERROR
};



enum
{
  __GCONV_IS_LAST = 0x0001,
  __GCONV_IGNORE_ERRORS = 0x0002
};



struct __gconv_step;
struct __gconv_step_data;
struct __gconv_loaded_object;
struct __gconv_trans_data;



typedef int (*__gconv_fct) (struct __gconv_step *, struct __gconv_step_data *,
                            __const unsigned char **, __const unsigned char *,
                            unsigned char **, size_t *, int, int);


typedef int (*__gconv_init_fct) (struct __gconv_step *);
typedef void (*__gconv_end_fct) (struct __gconv_step *);



typedef int (*__gconv_trans_fct) (struct __gconv_step *,
                                  struct __gconv_step_data *, void *,
                                  __const unsigned char *,
                                  __const unsigned char **,
                                  __const unsigned char *, unsigned char **,
                                  size_t *);


typedef int (*__gconv_trans_context_fct) (void *, __const unsigned char *,
                                          __const unsigned char *,
                                          unsigned char *, unsigned char *);


typedef int (*__gconv_trans_query_fct) (__const char *, __const char ***,
                                        size_t *);


typedef int (*__gconv_trans_init_fct) (void **, const char *);
typedef void (*__gconv_trans_end_fct) (void *);

struct __gconv_trans_data
{

  __gconv_trans_fct __trans_fct;
  __gconv_trans_context_fct __trans_context_fct;
  __gconv_trans_end_fct __trans_end_fct;
  void *__data;
  struct __gconv_trans_data *__next;
};



struct __gconv_step
{
  struct __gconv_loaded_object *__shlib_handle;
  __const char *__modname;

  int __counter;

  char *__from_name;
  char *__to_name;

  __gconv_fct __fct;
  __gconv_init_fct __init_fct;
  __gconv_end_fct __end_fct;



  int __min_needed_from;
  int __max_needed_from;
  int __min_needed_to;
  int __max_needed_to;


  int __stateful;

  void *__data;
};



struct __gconv_step_data
{
  unsigned char *__outbuf;
  unsigned char *__outbufend;



  int __flags;



  int __invocation_counter;



  int __internal_use;

  __mbstate_t *__statep;
  __mbstate_t __state;



  struct __gconv_trans_data *__trans;
};



typedef struct __gconv_info
{
  size_t __nsteps;
  struct __gconv_step *__steps;
  __extension__ struct __gconv_step_data __data [];
} *__gconv_t;
# 45 "/usr/include/_G_config.h" 2 3
typedef union
{
  struct __gconv_info __cd;
  struct
  {
    struct __gconv_info __cd;
    struct __gconv_step_data __data;
  } __combined;
} _G_iconv_t;

typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));
typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
# 31 "/usr/include/libio.h" 2 3
# 51 "/usr/include/libio.h" 3
# 1 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stdarg.h" 1 3
# 43 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stdarg.h" 3
typedef __builtin_va_list __gnuc_va_list;
# 52 "/usr/include/libio.h" 2 3
# 158 "/usr/include/libio.h" 3
struct _IO_jump_t; struct _IO_FILE;
# 168 "/usr/include/libio.h" 3
typedef void _IO_lock_t;





struct _IO_marker {
  struct _IO_marker *_next;
  struct _IO_FILE *_sbuf;



  int _pos;
# 191 "/usr/include/libio.h" 3
};


enum __codecvt_result
{
  __codecvt_ok,
  __codecvt_partial,
  __codecvt_error,
  __codecvt_noconv
};
# 259 "/usr/include/libio.h" 3
struct _IO_FILE {
  int _flags;




  char* _IO_read_ptr;
  char* _IO_read_end;
  char* _IO_read_base;
  char* _IO_write_base;
  char* _IO_write_ptr;
  char* _IO_write_end;
  char* _IO_buf_base;
  char* _IO_buf_end;

  char *_IO_save_base;
  char *_IO_backup_base;
  char *_IO_save_end;

  struct _IO_marker *_markers;

  struct _IO_FILE *_chain;

  int _fileno;
  int _blksize;
  __off_t _old_offset;



  unsigned short _cur_column;
  signed char _vtable_offset;
  char _shortbuf[1];



  _IO_lock_t *_lock;
# 303 "/usr/include/libio.h" 3
  __off64_t _offset;





  void *__pad1;
  void *__pad2;

  int _mode;

  char _unused2[15 * sizeof (int) - 2 * sizeof (void *)];

};


typedef struct _IO_FILE _IO_FILE;


struct _IO_FILE_plus;

extern struct _IO_FILE_plus _IO_2_1_stdin_;
extern struct _IO_FILE_plus _IO_2_1_stdout_;
extern struct _IO_FILE_plus _IO_2_1_stderr_;
# 342 "/usr/include/libio.h" 3
typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);







typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf,
                                 size_t __n);







typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w);


typedef int __io_close_fn (void *__cookie);
# 394 "/usr/include/libio.h" 3
extern int __underflow (_IO_FILE *) ;
extern int __uflow (_IO_FILE *) ;
extern int __overflow (_IO_FILE *, int) ;
extern wint_t __wunderflow (_IO_FILE *) ;
extern wint_t __wuflow (_IO_FILE *) ;
extern wint_t __woverflow (_IO_FILE *, wint_t) ;
# 424 "/usr/include/libio.h" 3
extern int _IO_getc (_IO_FILE *__fp) ;
extern int _IO_putc (int __c, _IO_FILE *__fp) ;
extern int _IO_feof (_IO_FILE *__fp) ;
extern int _IO_ferror (_IO_FILE *__fp) ;

extern int _IO_peekc_locked (_IO_FILE *__fp) ;





extern void _IO_flockfile (_IO_FILE *) ;
extern void _IO_funlockfile (_IO_FILE *) ;
extern int _IO_ftrylockfile (_IO_FILE *) ;
# 454 "/usr/include/libio.h" 3
extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,
                        __gnuc_va_list, int *__restrict) ;
extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,
                         __gnuc_va_list) ;
extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t) ;
extern size_t _IO_sgetn (_IO_FILE *, void *, size_t) ;

extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int) ;
extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int) ;

extern void _IO_free_backup_area (_IO_FILE *) ;
# 74 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stdio.h" 2 3
# 88 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stdio.h" 3
typedef _G_fpos_t fpos_t;
# 137 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stdio.h" 3
# 1 "/usr/include/bits/stdio_lim.h" 1 3
# 138 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stdio.h" 2 3



extern FILE *stdin;
extern FILE *stdout;
extern FILE *stderr;






extern int remove (__const char *__filename) ;

extern int rename (__const char *__old, __const char *__new) ;




extern FILE *tmpfile (void) ;
# 169 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stdio.h" 3
extern char *tmpnam (char *__s) ;




extern char *tmpnam_r (char *__s) ;
# 186 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stdio.h" 3
extern char *tempnam (__const char *__dir, __const char *__pfx)
             __attribute__ ((__malloc__));




extern int fclose (FILE *__stream) ;

extern int fflush (FILE *__stream) ;



extern int fflush_unlocked (FILE *__stream) ;
# 209 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stdio.h" 3
extern FILE *fopen (__const char *__restrict __filename,
                    __const char *__restrict __modes) ;

extern FILE *freopen (__const char *__restrict __filename,
                      __const char *__restrict __modes,
                      FILE *__restrict __stream) ;
# 239 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stdio.h" 3
extern FILE *fdopen (int __fd, __const char *__modes) ;
# 262 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stdio.h" 3
extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) ;



extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
                    int __modes, size_t __n) ;




extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
                       size_t __size) ;


extern void setlinebuf (FILE *__stream) ;




extern int fprintf (FILE *__restrict __stream,
                    __const char *__restrict __format, ...) ;

extern int printf (__const char *__restrict __format, ...) ;

extern int sprintf (char *__restrict __s,
                    __const char *__restrict __format, ...) ;


extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format,
                     __gnuc_va_list __arg) ;

extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg)
            ;

extern int vsprintf (char *__restrict __s, __const char *__restrict __format,
                     __gnuc_va_list __arg) ;



extern int snprintf (char *__restrict __s, size_t __maxlen,
                     __const char *__restrict __format, ...)
             __attribute__ ((__format__ (__printf__, 3, 4)));

extern int vsnprintf (char *__restrict __s, size_t __maxlen,
                      __const char *__restrict __format, __gnuc_va_list __arg)
             __attribute__ ((__format__ (__printf__, 3, 0)));
# 333 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stdio.h" 3
extern int fscanf (FILE *__restrict __stream,
                   __const char *__restrict __format, ...) ;

extern int scanf (__const char *__restrict __format, ...) ;

extern int sscanf (__const char *__restrict __s,
                   __const char *__restrict __format, ...) ;
# 359 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stdio.h" 3
extern int fgetc (FILE *__stream) ;
extern int getc (FILE *__stream) ;


extern int getchar (void) ;







extern int getc_unlocked (FILE *__stream) ;
extern int getchar_unlocked (void) ;




extern int fgetc_unlocked (FILE *__stream) ;




extern int fputc (int __c, FILE *__stream) ;
extern int putc (int __c, FILE *__stream) ;


extern int putchar (int __c) ;







extern int fputc_unlocked (int __c, FILE *__stream) ;




extern int putc_unlocked (int __c, FILE *__stream) ;
extern int putchar_unlocked (int __c) ;





extern int getw (FILE *__stream) ;


extern int putw (int __w, FILE *__stream) ;




extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
            ;
# 425 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stdio.h" 3
extern char *gets (char *__s) ;
# 449 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stdio.h" 3
extern int fputs (__const char *__restrict __s, FILE *__restrict __stream)
            ;
# 459 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stdio.h" 3
extern int puts (__const char *__s) ;



extern int ungetc (int __c, FILE *__stream) ;



extern size_t fread (void *__restrict __ptr, size_t __size,
                     size_t __n, FILE *__restrict __stream) ;

extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
                      size_t __n, FILE *__restrict __s) ;



extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
                              size_t __n, FILE *__restrict __stream) ;
extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size,
                               size_t __n, FILE *__restrict __stream) ;




extern int fseek (FILE *__stream, long int __off, int __whence) ;

extern long int ftell (FILE *__stream) ;

extern void rewind (FILE *__stream) ;
# 503 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stdio.h" 3
extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos)
            ;

extern int fsetpos (FILE *__stream, __const fpos_t *__pos) ;
# 539 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stdio.h" 3
extern void clearerr (FILE *__stream) ;

extern int feof (FILE *__stream) ;

extern int ferror (FILE *__stream) ;



extern void clearerr_unlocked (FILE *__stream) ;
extern int feof_unlocked (FILE *__stream) ;
extern int ferror_unlocked (FILE *__stream) ;




extern void perror (__const char *__s) ;




extern int sys_nerr;
extern __const char *__const sys_errlist[];
# 570 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stdio.h" 3
extern int fileno (FILE *__stream) ;




extern int fileno_unlocked (FILE *__stream) ;






extern FILE *popen (__const char *__command, __const char *__modes) ;


extern int pclose (FILE *__stream) ;





extern char *ctermid (char *__s) ;
# 617 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stdio.h" 3
extern void flockfile (FILE *__stream) ;



extern int ftrylockfile (FILE *__stream) ;


extern void funlockfile (FILE *__stream) ;
# 638 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stdio.h" 3
# 1 "/usr/include/bits/stdio.h" 1 3
# 39 "/usr/include/bits/stdio.h" 3
extern __inline int
vprintf (__const char *__restrict __fmt, __gnuc_va_list __arg)
{
  return vfprintf (stdout, __fmt, __arg);
}


extern __inline int
getchar (void)
{
  return _IO_getc (stdin);
}




extern __inline int
getc_unlocked (FILE *__fp)
{
  return ((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
}


extern __inline int
getchar_unlocked (void)
{
  return ((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++);
}




extern __inline int
putchar (int __c)
{
  return _IO_putc (__c, stdout);
}




extern __inline int
fputc_unlocked (int __c, FILE *__stream)
{
  return (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
}





extern __inline int
putc_unlocked (int __c, FILE *__stream)
{
  return (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
}


extern __inline int
putchar_unlocked (int __c)
{
  return (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c)));
}
# 117 "/usr/include/bits/stdio.h" 3
extern __inline int
feof_unlocked (FILE *__stream)
{
  return (((__stream)->_flags & 0x10) != 0);
}


extern __inline int
ferror_unlocked (FILE *__stream)
{
  return (((__stream)->_flags & 0x20) != 0);
}
# 639 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stdio.h" 2 3
# 26 "ext2_mkfs.c" 2
# 1 "/usr/include/stdlib.h" 1 3
# 25 "/usr/include/stdlib.h" 3
# 1 "/usr/include/features.h" 1 3
# 26 "/usr/include/stdlib.h" 2 3







# 1 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stddef.h" 1 3
# 34 "/usr/include/stdlib.h" 2 3
# 94 "/usr/include/stdlib.h" 3
typedef struct
  {
    int quot;
    int rem;
  } div_t;



typedef struct
  {
    long int quot;
    long int rem;
  } ldiv_t;
# 133 "/usr/include/stdlib.h" 3
extern size_t __ctype_get_mb_cur_max (void) ;



extern double atof (__const char *__nptr) __attribute__ ((__pure__));

extern int atoi (__const char *__nptr) __attribute__ ((__pure__));

extern long int atol (__const char *__nptr) __attribute__ ((__pure__));



__extension__ extern long long int atoll (__const char *__nptr)
             __attribute__ ((__pure__));



extern double strtod (__const char *__restrict __nptr,
                      char **__restrict __endptr) ;
# 163 "/usr/include/stdlib.h" 3
extern long int strtol (__const char *__restrict __nptr,
                        char **__restrict __endptr, int __base) ;

extern unsigned long int strtoul (__const char *__restrict __nptr,
                                  char **__restrict __endptr, int __base)
            ;



__extension__
extern long long int strtoq (__const char *__restrict __nptr,
                             char **__restrict __endptr, int __base) ;

__extension__
extern unsigned long long int strtouq (__const char *__restrict __nptr,
                                       char **__restrict __endptr, int __base)
            ;






__extension__
extern long long int strtoll (__const char *__restrict __nptr,
                              char **__restrict __endptr, int __base) ;

__extension__
extern unsigned long long int strtoull (__const char *__restrict __nptr,
                                        char **__restrict __endptr, int __base)
            ;
# 250 "/usr/include/stdlib.h" 3
extern double __strtod_internal (__const char *__restrict __nptr,
                                 char **__restrict __endptr, int __group)
            ;
extern float __strtof_internal (__const char *__restrict __nptr,
                                char **__restrict __endptr, int __group)
            ;
extern long double __strtold_internal (__const char *__restrict __nptr,
                                       char **__restrict __endptr,
                                       int __group) ;

extern long int __strtol_internal (__const char *__restrict __nptr,
                                   char **__restrict __endptr,
                                   int __base, int __group) ;



extern unsigned long int __strtoul_internal (__const char *__restrict __nptr,
                                             char **__restrict __endptr,
                                             int __base, int __group) ;




__extension__
extern long long int __strtoll_internal (__const char *__restrict __nptr,
                                         char **__restrict __endptr,
                                         int __base, int __group) ;



__extension__
extern unsigned long long int __strtoull_internal (__const char *
                                                   __restrict __nptr,
                                                   char **__restrict __endptr,
                                                   int __base, int __group)
            ;
# 294 "/usr/include/stdlib.h" 3
extern __inline double
strtod (__const char *__restrict __nptr, char **__restrict __endptr)
{
  return __strtod_internal (__nptr, __endptr, 0);
}
extern __inline long int
strtol (__const char *__restrict __nptr, char **__restrict __endptr,
        int __base)
{
  return __strtol_internal (__nptr, __endptr, __base, 0);
}
extern __inline unsigned long int
strtoul (__const char *__restrict __nptr, char **__restrict __endptr,
         int __base)
{
  return __strtoul_internal (__nptr, __endptr, __base, 0);
}
# 326 "/usr/include/stdlib.h" 3
__extension__ extern __inline long long int
strtoq (__const char *__restrict __nptr, char **__restrict __endptr,
        int __base)
{
  return __strtoll_internal (__nptr, __endptr, __base, 0);
}
__extension__ extern __inline unsigned long long int
strtouq (__const char *__restrict __nptr, char **__restrict __endptr,
         int __base)
{
  return __strtoull_internal (__nptr, __endptr, __base, 0);
}



__extension__ extern __inline long long int
strtoll (__const char *__restrict __nptr, char **__restrict __endptr,
         int __base)
{
  return __strtoll_internal (__nptr, __endptr, __base, 0);
}
__extension__ extern __inline unsigned long long int
strtoull (__const char * __restrict __nptr, char **__restrict __endptr,
          int __base)
{
  return __strtoull_internal (__nptr, __endptr, __base, 0);
}


extern __inline double
atof (__const char *__nptr)
{
  return strtod (__nptr, (char **) ((void *)0));
}
extern __inline int
atoi (__const char *__nptr)
{
  return (int) strtol (__nptr, (char **) ((void *)0), 10);
}
extern __inline long int
atol (__const char *__nptr)
{
  return strtol (__nptr, (char **) ((void *)0), 10);
}


__extension__ extern __inline long long int
atoll (__const char *__nptr)
{
  return strtoll (__nptr, (char **) ((void *)0), 10);
}
# 385 "/usr/include/stdlib.h" 3
extern char *l64a (long int __n) ;


extern long int a64l (__const char *__s) __attribute__ ((__pure__));


# 1 "/usr/include/sys/types.h" 1 3
# 26 "/usr/include/sys/types.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/sys/types.h" 2 3



# 1 "/usr/include/bits/types.h" 1 3
# 31 "/usr/include/sys/types.h" 2 3


typedef __u_char u_char;
typedef __u_short u_short;
typedef __u_int u_int;
typedef __u_long u_long;
typedef __quad_t quad_t;
typedef __u_quad_t u_quad_t;
typedef __fsid_t fsid_t;


typedef __loff_t loff_t;



typedef __ino_t ino_t;
# 58 "/usr/include/sys/types.h" 3
typedef __dev_t dev_t;




typedef __gid_t gid_t;




typedef __mode_t mode_t;




typedef __nlink_t nlink_t;




typedef __uid_t uid_t;





typedef __off_t off_t;
# 96 "/usr/include/sys/types.h" 3
typedef __pid_t pid_t;




typedef __id_t id_t;




typedef __ssize_t ssize_t;




typedef __daddr_t daddr_t;
typedef __caddr_t caddr_t;



typedef __key_t key_t;
# 126 "/usr/include/sys/types.h" 3
# 1 "/usr/include/time.h" 1 3
# 67 "/usr/include/time.h" 3
# 1 "/usr/include/bits/types.h" 1 3
# 68 "/usr/include/time.h" 2 3


typedef __time_t time_t;
# 79 "/usr/include/time.h" 3
# 1 "/usr/include/bits/types.h" 1 3
# 80 "/usr/include/time.h" 2 3


typedef __clockid_t clockid_t;
# 91 "/usr/include/time.h" 3
# 1 "/usr/include/bits/types.h" 1 3
# 92 "/usr/include/time.h" 2 3


typedef __timer_t timer_t;
# 127 "/usr/include/sys/types.h" 2 3
# 140 "/usr/include/sys/types.h" 3
# 1 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stddef.h" 1 3
# 141 "/usr/include/sys/types.h" 2 3



typedef unsigned long int ulong;
typedef unsigned short int ushort;
typedef unsigned int uint;
# 184 "/usr/include/sys/types.h" 3
typedef int int8_t __attribute__ ((__mode__ (__QI__)));
typedef int int16_t __attribute__ ((__mode__ (__HI__)));
typedef int int32_t __attribute__ ((__mode__ (__SI__)));
typedef int int64_t __attribute__ ((__mode__ (__DI__)));


typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));

typedef int register_t __attribute__ ((__mode__ (__word__)));
# 206 "/usr/include/sys/types.h" 3
# 1 "/usr/include/endian.h" 1 3
# 22 "/usr/include/endian.h" 3
# 1 "/usr/include/features.h" 1 3
# 23 "/usr/include/endian.h" 2 3
# 37 "/usr/include/endian.h" 3
# 1 "/usr/include/bits/endian.h" 1 3
# 38 "/usr/include/endian.h" 2 3
# 207 "/usr/include/sys/types.h" 2 3


# 1 "/usr/include/sys/select.h" 1 3
# 25 "/usr/include/sys/select.h" 3
# 1 "/usr/include/features.h" 1 3
# 26 "/usr/include/sys/select.h" 2 3


# 1 "/usr/include/bits/types.h" 1 3
# 29 "/usr/include/sys/select.h" 2 3


# 1 "/usr/include/bits/select.h" 1 3
# 32 "/usr/include/sys/select.h" 2 3


# 1 "/usr/include/bits/sigset.h" 1 3
# 23 "/usr/include/bits/sigset.h" 3
typedef int __sig_atomic_t;




typedef struct
  {
    unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
  } __sigset_t;
# 35 "/usr/include/sys/select.h" 2 3



typedef __sigset_t sigset_t;




# 1 "/usr/include/time.h" 1 3
# 106 "/usr/include/time.h" 3
struct timespec
  {
    long int tv_sec;
    long int tv_nsec;
  };
# 44 "/usr/include/sys/select.h" 2 3

# 1 "/usr/include/bits/time.h" 1 3
# 63 "/usr/include/bits/time.h" 3
# 1 "/usr/include/bits/types.h" 1 3
# 64 "/usr/include/bits/time.h" 2 3



struct timeval
  {
    __time_t tv_sec;
    __suseconds_t tv_usec;
  };
# 46 "/usr/include/sys/select.h" 2 3



typedef long int __fd_mask;







typedef struct
  {






    __fd_mask __fds_bits[1024 / (8 * sizeof (__fd_mask))];


  } fd_set;






typedef __fd_mask fd_mask;
# 96 "/usr/include/sys/select.h" 3
extern int select (int __nfds, fd_set *__restrict __readfds,
                   fd_set *__restrict __writefds,
                   fd_set *__restrict __exceptfds,
                   struct timeval *__restrict __timeout) ;
# 210 "/usr/include/sys/types.h" 2 3


# 1 "/usr/include/sys/sysmacros.h" 1 3
# 213 "/usr/include/sys/types.h" 2 3
# 224 "/usr/include/sys/types.h" 3
typedef __blkcnt_t blkcnt_t;



typedef __fsblkcnt_t fsblkcnt_t;



typedef __fsfilcnt_t fsfilcnt_t;
# 392 "/usr/include/stdlib.h" 2 3






extern long int random (void) ;


extern void srandom (unsigned int __seed) ;





extern char *initstate (unsigned int __seed, char *__statebuf,
                        size_t __statelen) ;



extern char *setstate (char *__statebuf) ;







struct random_data
  {
    int32_t *fptr;
    int32_t *rptr;
    int32_t *state;
    int rand_type;
    int rand_deg;
    int rand_sep;
    int32_t *end_ptr;
  };

extern int random_r (struct random_data *__restrict __buf,
                     int32_t *__restrict __result) ;

extern int srandom_r (unsigned int __seed, struct random_data *__buf) ;

extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
                        size_t __statelen,
                        struct random_data *__restrict __buf) ;

extern int setstate_r (char *__restrict __statebuf,
                       struct random_data *__restrict __buf) ;





extern int rand (void) ;

extern void srand (unsigned int __seed) ;



extern int rand_r (unsigned int *__seed) ;







extern double drand48 (void) ;
extern double erand48 (unsigned short int __xsubi[3]) ;


extern long int lrand48 (void) ;
extern long int nrand48 (unsigned short int __xsubi[3]) ;


extern long int mrand48 (void) ;
extern long int jrand48 (unsigned short int __xsubi[3]) ;


extern void srand48 (long int __seedval) ;
extern unsigned short int *seed48 (unsigned short int __seed16v[3]) ;
extern void lcong48 (unsigned short int __param[7]) ;





struct drand48_data
  {
    unsigned short int __x[3];
    unsigned short int __old_x[3];
    unsigned short int __c;
    unsigned short int __init;
    unsigned long long int __a;
  };


extern int drand48_r (struct drand48_data *__restrict __buffer,
                      double *__restrict __result) ;
extern int erand48_r (unsigned short int __xsubi[3],
                      struct drand48_data *__restrict __buffer,
                      double *__restrict __result) ;


extern int lrand48_r (struct drand48_data *__restrict __buffer,
                      long int *__restrict __result) ;
extern int nrand48_r (unsigned short int __xsubi[3],
                      struct drand48_data *__restrict __buffer,
                      long int *__restrict __result) ;


extern int mrand48_r (struct drand48_data *__restrict __buffer,
                      long int *__restrict __result) ;
extern int jrand48_r (unsigned short int __xsubi[3],
                      struct drand48_data *__restrict __buffer,
                      long int *__restrict __result) ;


extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
            ;

extern int seed48_r (unsigned short int __seed16v[3],
                     struct drand48_data *__buffer) ;

extern int lcong48_r (unsigned short int __param[7],
                      struct drand48_data *__buffer) ;
# 528 "/usr/include/stdlib.h" 3
extern void *malloc (size_t __size) __attribute__ ((__malloc__));

extern void *calloc (size_t __nmemb, size_t __size)
             __attribute__ ((__malloc__));





extern void *realloc (void *__ptr, size_t __size) __attribute__ ((__malloc__));

extern void free (void *__ptr) ;



extern void cfree (void *__ptr) ;



# 1 "/usr/include/alloca.h" 1 3
# 22 "/usr/include/alloca.h" 3
# 1 "/usr/include/features.h" 1 3
# 23 "/usr/include/alloca.h" 2 3


# 1 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stddef.h" 1 3
# 26 "/usr/include/alloca.h" 2 3







extern void *alloca (size_t __size) ;
# 548 "/usr/include/stdlib.h" 2 3




extern void *valloc (size_t __size) __attribute__ ((__malloc__));
# 562 "/usr/include/stdlib.h" 3
extern void abort (void) __attribute__ ((__noreturn__));



extern int atexit (void (*__func) (void)) ;




extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
            ;





extern void exit (int __status) __attribute__ ((__noreturn__));
# 588 "/usr/include/stdlib.h" 3
extern char *getenv (__const char *__name) ;



extern char *__secure_getenv (__const char *__name) ;





extern int putenv (char *__string) ;





extern int setenv (__const char *__name, __const char *__value, int __replace)
            ;


extern int unsetenv (__const char *__name) ;






extern int clearenv (void) ;
# 624 "/usr/include/stdlib.h" 3
extern char *mktemp (char *__template) ;







extern int mkstemp (char *__template) ;
# 651 "/usr/include/stdlib.h" 3
extern char *mkdtemp (char *__template) ;




extern int system (__const char *__command) ;
# 673 "/usr/include/stdlib.h" 3
extern char *realpath (__const char *__restrict __name,
                       char *__restrict __resolved) ;






typedef int (*__compar_fn_t) (__const void *, __const void *);
# 690 "/usr/include/stdlib.h" 3
extern void *bsearch (__const void *__key, __const void *__base,
                      size_t __nmemb, size_t __size, __compar_fn_t __compar);



extern void qsort (void *__base, size_t __nmemb, size_t __size,
                   __compar_fn_t __compar);



extern int abs (int __x) __attribute__ ((__const__));
extern long int labs (long int __x) __attribute__ ((__const__));
# 711 "/usr/include/stdlib.h" 3
extern div_t div (int __numer, int __denom)
             __attribute__ ((__const__));
extern ldiv_t ldiv (long int __numer, long int __denom)
             __attribute__ ((__const__));
# 729 "/usr/include/stdlib.h" 3
extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
                   int *__restrict __sign) ;




extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
                   int *__restrict __sign) ;




extern char *gcvt (double __value, int __ndigit, char *__buf) ;




extern char *qecvt (long double __value, int __ndigit,
                    int *__restrict __decpt, int *__restrict __sign) ;
extern char *qfcvt (long double __value, int __ndigit,
                    int *__restrict __decpt, int *__restrict __sign) ;
extern char *qgcvt (long double __value, int __ndigit, char *__buf) ;




extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
                   int *__restrict __sign, char *__restrict __buf,
                   size_t __len) ;
extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
                   int *__restrict __sign, char *__restrict __buf,
                   size_t __len) ;

extern int qecvt_r (long double __value, int __ndigit,
                    int *__restrict __decpt, int *__restrict __sign,
                    char *__restrict __buf, size_t __len) ;
extern int qfcvt_r (long double __value, int __ndigit,
                    int *__restrict __decpt, int *__restrict __sign,
                    char *__restrict __buf, size_t __len) ;






extern int mblen (__const char *__s, size_t __n) ;


extern int mbtowc (wchar_t *__restrict __pwc,
                   __const char *__restrict __s, size_t __n) ;


extern int wctomb (char *__s, wchar_t __wchar) ;



extern size_t mbstowcs (wchar_t *__restrict __pwcs,
                        __const char *__restrict __s, size_t __n) ;

extern size_t wcstombs (char *__restrict __s,
                        __const wchar_t *__restrict __pwcs, size_t __n)
            ;







extern int rpmatch (__const char *__response) ;
# 859 "/usr/include/stdlib.h" 3
extern int getloadavg (double __loadavg[], int __nelem) ;
# 27 "ext2_mkfs.c" 2
# 1 "/usr/include/string.h" 1 3
# 26 "/usr/include/string.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/string.h" 2 3






# 1 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stddef.h" 1 3
# 34 "/usr/include/string.h" 2 3



extern void *memcpy (void *__restrict __dest,
                     __const void *__restrict __src, size_t __n) ;


extern void *memmove (void *__dest, __const void *__src, size_t __n)
            ;





extern void *memccpy (void *__restrict __dest, __const void *__restrict __src,
                      int __c, size_t __n)
            ;




extern void *memset (void *__s, int __c, size_t __n) ;


extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)
             __attribute__ ((__pure__));


extern void *memchr (__const void *__s, int __c, size_t __n)
              __attribute__ ((__pure__));
# 77 "/usr/include/string.h" 3
extern char *strcpy (char *__restrict __dest, __const char *__restrict __src)
            ;

extern char *strncpy (char *__restrict __dest,
                      __const char *__restrict __src, size_t __n) ;


extern char *strcat (char *__restrict __dest, __const char *__restrict __src)
            ;

extern char *strncat (char *__restrict __dest, __const char *__restrict __src,
                      size_t __n) ;


extern int strcmp (__const char *__s1, __const char *__s2)
             __attribute__ ((__pure__));

extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)
             __attribute__ ((__pure__));


extern int strcoll (__const char *__s1, __const char *__s2)
             __attribute__ ((__pure__));

extern size_t strxfrm (char *__restrict __dest,
                       __const char *__restrict __src, size_t __n) ;
# 120 "/usr/include/string.h" 3
extern char *strdup (__const char *__s) __attribute__ ((__malloc__));
# 155 "/usr/include/string.h" 3
extern char *strchr (__const char *__s, int __c) __attribute__ ((__pure__));

extern char *strrchr (__const char *__s, int __c) __attribute__ ((__pure__));
# 167 "/usr/include/string.h" 3
extern size_t strcspn (__const char *__s, __const char *__reject)
             __attribute__ ((__pure__));


extern size_t strspn (__const char *__s, __const char *__accept)
             __attribute__ ((__pure__));

extern char *strpbrk (__const char *__s, __const char *__accept)
             __attribute__ ((__pure__));

extern char *strstr (__const char *__haystack, __const char *__needle)
             __attribute__ ((__pure__));
# 187 "/usr/include/string.h" 3
extern char *strtok (char *__restrict __s, __const char *__restrict __delim)
            ;



extern char *__strtok_r (char *__restrict __s,
                         __const char *__restrict __delim,
                         char **__restrict __save_ptr) ;

extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim,
                       char **__restrict __save_ptr) ;
# 218 "/usr/include/string.h" 3
extern size_t strlen (__const char *__s) __attribute__ ((__pure__));
# 229 "/usr/include/string.h" 3
extern char *strerror (int __errnum) ;



extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) ;




extern void __bzero (void *__s, size_t __n) ;



extern void bcopy (__const void *__src, void *__dest, size_t __n) ;


extern void bzero (void *__s, size_t __n) ;


extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
             __attribute__ ((__pure__));


extern char *index (__const char *__s, int __c) __attribute__ ((__pure__));


extern char *rindex (__const char *__s, int __c) __attribute__ ((__pure__));



extern int ffs (int __i) __attribute__ ((__const__));
# 272 "/usr/include/string.h" 3
extern int strcasecmp (__const char *__s1, __const char *__s2)
             __attribute__ ((__pure__));


extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
             __attribute__ ((__pure__));
# 294 "/usr/include/string.h" 3
extern char *strsep (char **__restrict __stringp,
                     __const char *__restrict __delim) ;
# 356 "/usr/include/string.h" 3
# 1 "/usr/include/bits/string.h" 1 3
# 357 "/usr/include/string.h" 2 3


# 1 "/usr/include/bits/string2.h" 1 3
# 52 "/usr/include/bits/string2.h" 3
# 1 "/usr/include/endian.h" 1 3
# 53 "/usr/include/bits/string2.h" 2 3
# 1 "/usr/include/bits/types.h" 1 3
# 54 "/usr/include/bits/string2.h" 2 3
# 371 "/usr/include/bits/string2.h" 3
extern void *__rawmemchr (const void *__s, int __c);
# 395 "/usr/include/bits/string2.h" 3
extern __inline char *__strcpy_small (char *, __uint16_t, __uint16_t,
                                      __uint32_t, __uint32_t, size_t);
extern __inline char *
__strcpy_small (char *__dest,
                __uint16_t __src0_2, __uint16_t __src4_2,
                __uint32_t __src0_4, __uint32_t __src4_4,
                size_t __srclen)
{
  union {
    __uint32_t __ui;
    __uint16_t __usi;
    unsigned char __uc;
  } *__u = (void *) __dest;
  switch ((unsigned int) __srclen)
    {
    case 1:
      __u->__uc = '\0';
      break;
    case 2:
      __u->__usi = __src0_2;
      break;
    case 3:
      __u->__usi = __src0_2;
      __u = __extension__ ((void *) __u + 2);
      __u->__uc = '\0';
      break;
    case 4:
      __u->__ui = __src0_4;
      break;
    case 5:
      __u->__ui = __src0_4;
      __u = __extension__ ((void *) __u + 4);
      __u->__uc = '\0';
      break;
    case 6:
      __u->__ui = __src0_4;
      __u = __extension__ ((void *) __u + 4);
      __u->__usi = __src4_2;
      break;
    case 7:
      __u->__ui = __src0_4;
      __u = __extension__ ((void *) __u + 4);
      __u->__usi = __src4_2;
      __u = __extension__ ((void *) __u + 2);
      __u->__uc = '\0';
      break;
    case 8:
      __u->__ui = __src0_4;
      __u = __extension__ ((void *) __u + 4);
      __u->__ui = __src4_4;
      break;
    }
  return __dest;
}
# 873 "/usr/include/bits/string2.h" 3
extern __inline size_t __strcspn_c1 (__const char *__s, char __reject);
extern __inline size_t
__strcspn_c1 (__const char *__s, char __reject)
{
  register size_t __result = 0;
  while (__s[__result] != '\0' && __s[__result] != __reject)
    ++__result;
  return __result;
}

extern __inline size_t __strcspn_c2 (__const char *__s, char __reject1,
                                     char __reject2);
extern __inline size_t
__strcspn_c2 (__const char *__s, char __reject1, char __reject2)
{
  register size_t __result = 0;
  while (__s[__result] != '\0' && __s[__result] != __reject1
         && __s[__result] != __reject2)
    ++__result;
  return __result;
}

extern __inline size_t __strcspn_c3 (__const char *__s, char __reject1,
                                     char __reject2, char __reject3);
extern __inline size_t
__strcspn_c3 (__const char *__s, char __reject1, char __reject2,
              char __reject3)
{
  register size_t __result = 0;
  while (__s[__result] != '\0' && __s[__result] != __reject1
         && __s[__result] != __reject2 && __s[__result] != __reject3)
    ++__result;
  return __result;
}
# 928 "/usr/include/bits/string2.h" 3
extern __inline size_t __strspn_c1 (__const char *__s, char __accept);
extern __inline size_t
__strspn_c1 (__const char *__s, char __accept)
{
  register size_t __result = 0;

  while (__s[__result] == __accept)
    ++__result;
  return __result;
}

extern __inline size_t __strspn_c2 (__const char *__s, char __accept1,
                                    char __accept2);
extern __inline size_t
__strspn_c2 (__const char *__s, char __accept1, char __accept2)
{
  register size_t __result = 0;

  while (__s[__result] == __accept1 || __s[__result] == __accept2)
    ++__result;
  return __result;
}

extern __inline size_t __strspn_c3 (__const char *__s, char __accept1,
                                    char __accept2, char __accept3);
extern __inline size_t
__strspn_c3 (__const char *__s, char __accept1, char __accept2, char __accept3)
{
  register size_t __result = 0;

  while (__s[__result] == __accept1 || __s[__result] == __accept2
         || __s[__result] == __accept3)
    ++__result;
  return __result;
}
# 983 "/usr/include/bits/string2.h" 3
extern __inline char *__strpbrk_c2 (__const char *__s, int __accept1,
                                     int __accept2);
extern __inline char *
__strpbrk_c2 (__const char *__s, int __accept1, int __accept2)
{

  while (*__s != '\0' && *__s != __accept1 && *__s != __accept2)
    ++__s;
  return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
}

extern __inline char *__strpbrk_c3 (__const char *__s, int __accept1,
                                     int __accept2, int __accept3);
extern __inline char *
__strpbrk_c3 (__const char *__s, int __accept1, int __accept2,
              int __accept3)
{

  while (*__s != '\0' && *__s != __accept1 && *__s != __accept2
         && *__s != __accept3)
    ++__s;
  return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
}
# 1045 "/usr/include/bits/string2.h" 3
extern __inline char *__strtok_r_1c (char *__s, char __sep, char **__nextp);
extern __inline char *
__strtok_r_1c (char *__s, char __sep, char **__nextp)
{
  char *__result;
  if (__s == ((void *)0))
    __s = *__nextp;
  while (*__s == __sep)
    ++__s;
  if (*__s == '\0')
    __result = ((void *)0);
  else
    {
      __result = __s;
      while (*__s != '\0' && *__s != __sep)
        ++__s;
      if (*__s == '\0')
        *__nextp = __s;
      else
        {
          *__s = '\0';
          *__nextp = __s + 1;
        }
    }
  return __result;
}
# 1095 "/usr/include/bits/string2.h" 3
extern __inline char *__strsep_1c (char **__s, char __reject);
extern __inline char *
__strsep_1c (char **__s, char __reject)
{
  register char *__retval = *__s;
  if (__retval == ((void *)0))
    return *__s = ((void *)0);
  if (*__retval == __reject)
    *(*__s)++ = '\0';
  else
    if ((*__s = (__extension__ (__builtin_constant_p (__reject) && (__reject) == '\0' ? (char *) __rawmemchr (__retval, __reject) : strchr (__retval, __reject)))) != ((void *)0))
      *(*__s)++ = '\0';
    else
      *__s = ((void *)0);
  return __retval;
}

extern __inline char *__strsep_2c (char **__s, char __reject1, char __reject2);
extern __inline char *
__strsep_2c (char **__s, char __reject1, char __reject2)
{
  register char *__retval = *__s;
  if (__retval == ((void *)0))
    return *__s = ((void *)0);
  if (*__retval == __reject1 || *__retval == __reject2)
    *(*__s)++ = '\0';
  else
    {
      register char *__cp = __retval;
      while (*__cp != '\0' && *__cp != __reject1 && *__cp != __reject2)
        ++__cp;
      if (*__cp != '\0')
        {
          *__s = __cp;
          *(*__s)++ = '\0';
        }
      else
        *__s = ((void *)0);
    }
  return __retval;
}

extern __inline char *__strsep_3c (char **__s, char __reject1, char __reject2,
                                   char __reject3);
extern __inline char *
__strsep_3c (char **__s, char __reject1, char __reject2, char __reject3)
{
  register char *__retval = *__s;
  if (__retval == ((void *)0))
    return *__s = ((void *)0);
  if (*__retval == __reject1 || *__retval == __reject2
      || *__retval == __reject3)
    *(*__s)++ = '\0';
  else
    {
      register char *__cp = __retval;
      while (*__cp != '\0' && *__cp != __reject1 && *__cp != __reject2
             && *__cp != __reject3)
        ++__cp;
      if (*__cp != '\0')
        {
          *__s = __cp;
          *(*__s)++ = '\0';
        }
      else
        *__s = ((void *)0);
    }
  return __retval;
}

extern __inline char *__strsep_g (char **__s, __const char *__reject);
extern __inline char *
__strsep_g (char **__s, __const char *__reject)
{
  register char *__retval = *__s;
  if (__retval == ((void *)0))
    return ((void *)0);
  if ((*__s = __extension__ ({ char __a0, __a1, __a2; (__builtin_constant_p (__reject) && ((size_t)(const void *)((__reject) + 1) - (size_t)(const void *)(__reject) == 1) ? ((__a0 = ((__const char *) (__reject))[0], __a0 == '\0') ? ((void) (__retval), ((void *)0)) : ((__a1 = ((__const char *) (__reject))[1], __a1 == '\0') ? (__extension__ (__builtin_constant_p (__a0) && (__a0) == '\0' ? (char *) __rawmemchr (__retval, __a0) : strchr (__retval, __a0))) : ((__a2 = ((__const char *) (__reject))[2], __a2 == '\0') ? __strpbrk_c2 (__retval, __a0, __a1) : (((__const char *) (__reject))[3] == '\0' ? __strpbrk_c3 (__retval, __a0, __a1, __a2) : strpbrk (__retval, __reject))))) : strpbrk (__retval, __reject)); })) != ((void *)0))
    *(*__s)++ = '\0';
  return __retval;
}
# 1188 "/usr/include/bits/string2.h" 3
# 1 "/usr/include/stdlib.h" 1 3
# 1189 "/usr/include/bits/string2.h" 2 3




extern char *__strdup (__const char *__string) __attribute__ ((__malloc__));
# 1212 "/usr/include/bits/string2.h" 3
extern char *__strndup (__const char *__string, size_t __n)
             __attribute__ ((__malloc__));
# 360 "/usr/include/string.h" 2 3
# 28 "ext2_mkfs.c" 2
# 1 "/usr/include/sys/stat.h" 1 3
# 26 "/usr/include/sys/stat.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/sys/stat.h" 2 3

# 1 "/usr/include/bits/types.h" 1 3
# 29 "/usr/include/sys/stat.h" 2 3
# 98 "/usr/include/sys/stat.h" 3
# 1 "/usr/include/bits/stat.h" 1 3
# 36 "/usr/include/bits/stat.h" 3
struct stat
  {
    __dev_t st_dev;
    unsigned short int __pad1;

    __ino_t st_ino;



    __mode_t st_mode;
    __nlink_t st_nlink;
    __uid_t st_uid;
    __gid_t st_gid;
    __dev_t st_rdev;
    unsigned short int __pad2;

    __off_t st_size;



    __blksize_t st_blksize;


    __blkcnt_t st_blocks;



    __time_t st_atime;
    unsigned long int __unused1;
    __time_t st_mtime;
    unsigned long int __unused2;
    __time_t st_ctime;
    unsigned long int __unused3;

    unsigned long int __unused4;
    unsigned long int __unused5;



  };
# 99 "/usr/include/sys/stat.h" 2 3
# 200 "/usr/include/sys/stat.h" 3
extern int stat (__const char *__restrict __file,
                 struct stat *__restrict __buf) ;



extern int fstat (int __fd, struct stat *__buf) ;
# 228 "/usr/include/sys/stat.h" 3
extern int lstat (__const char *__restrict __file,
                  struct stat *__restrict __buf) ;
# 249 "/usr/include/sys/stat.h" 3
extern int chmod (__const char *__file, __mode_t __mode) ;



extern int fchmod (int __fd, __mode_t __mode) ;





extern __mode_t umask (__mode_t __mask) ;
# 268 "/usr/include/sys/stat.h" 3
extern int mkdir (__const char *__path, __mode_t __mode) ;





extern int mknod (__const char *__path, __mode_t __mode, __dev_t __dev)
            ;




extern int mkfifo (__const char *__path, __mode_t __mode) ;
# 306 "/usr/include/sys/stat.h" 3
extern int __fxstat (int __ver, int __fildes, struct stat *__stat_buf) ;
extern int __xstat (int __ver, __const char *__filename,
                    struct stat *__stat_buf) ;
extern int __lxstat (int __ver, __const char *__filename,
                     struct stat *__stat_buf) ;
# 337 "/usr/include/sys/stat.h" 3
extern int __xmknod (int __ver, __const char *__path, __mode_t __mode,
                     __dev_t *__dev) ;




extern __inline__ int stat (__const char *__path,
                            struct stat *__statbuf)
{
  return __xstat (3, __path, __statbuf);
}


extern __inline__ int lstat (__const char *__path,
                             struct stat *__statbuf)
{
  return __lxstat (3, __path, __statbuf);
}


extern __inline__ int fstat (int __fd, struct stat *__statbuf)
{
  return __fxstat (3, __fd, __statbuf);
}


extern __inline__ int mknod (__const char *__path, __mode_t __mode,
                             __dev_t __dev)
{
  return __xmknod (1, __path, __mode, &__dev);
}
# 29 "ext2_mkfs.c" 2
# 1 "/usr/include/time.h" 1 3
# 28 "/usr/include/time.h" 3
# 1 "/usr/include/features.h" 1 3
# 29 "/usr/include/time.h" 2 3
# 38 "/usr/include/time.h" 3
# 1 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stddef.h" 1 3
# 39 "/usr/include/time.h" 2 3



# 1 "/usr/include/bits/time.h" 1 3
# 39 "/usr/include/bits/time.h" 3
# 1 "/usr/include/bits/types.h" 1 3
# 40 "/usr/include/bits/time.h" 2 3
extern long int __sysconf (int);
# 43 "/usr/include/time.h" 2 3
# 56 "/usr/include/time.h" 3
# 1 "/usr/include/bits/types.h" 1 3
# 57 "/usr/include/time.h" 2 3


typedef __clock_t clock_t;
# 118 "/usr/include/time.h" 3
struct tm
{
  int tm_sec;
  int tm_min;
  int tm_hour;
  int tm_mday;
  int tm_mon;
  int tm_year;
  int tm_wday;
  int tm_yday;
  int tm_isdst;


  long int tm_gmtoff;
  __const char *tm_zone;




};




struct itimerspec
  {
    struct timespec it_interval;
    struct timespec it_value;
  };


struct sigevent;
# 163 "/usr/include/time.h" 3
extern clock_t clock (void) ;


extern time_t time (time_t *__timer) ;


extern double difftime (time_t __time1, time_t __time0)
             __attribute__ ((__const__));


extern time_t mktime (struct tm *__tp) ;





extern size_t strftime (char *__restrict __s, size_t __maxsize,
                        __const char *__restrict __format,
                        __const struct tm *__restrict __tp) ;
# 194 "/usr/include/time.h" 3
extern struct tm *gmtime (__const time_t *__timer) ;



extern struct tm *localtime (__const time_t *__timer) ;




extern struct tm *gmtime_r (__const time_t *__restrict __timer,
                            struct tm *__restrict __tp) ;



extern struct tm *localtime_r (__const time_t *__restrict __timer,
                               struct tm *__restrict __tp) ;




extern char *asctime (__const struct tm *__tp) ;


extern char *ctime (__const time_t *__timer) ;






extern char *asctime_r (__const struct tm *__restrict __tp,
                        char *__restrict __buf) ;


extern char *ctime_r (__const time_t *__restrict __timer,
                      char *__restrict __buf) ;




extern char *__tzname[2];
extern int __daylight;
extern long int __timezone;




extern char *tzname[2];



extern void tzset (void) ;



extern int daylight;
extern long int timezone;





extern int stime (__const time_t *__when) ;
# 271 "/usr/include/time.h" 3
extern time_t timegm (struct tm *__tp) ;


extern time_t timelocal (struct tm *__tp) ;


extern int dysize (int __year) __attribute__ ((__const__));





extern int nanosleep (__const struct timespec *__requested_time,
                      struct timespec *__remaining) ;



extern int clock_getres (clockid_t __clock_id, struct timespec *__res) ;


extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) ;


extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp)
            ;
# 309 "/usr/include/time.h" 3
extern int timer_create (clockid_t __clock_id,
                         struct sigevent *__restrict __evp,
                         timer_t *__restrict __timerid) ;


extern int timer_delete (timer_t __timerid) ;


extern int timer_settime (timer_t __timerid, int __flags,
                          __const struct itimerspec *__restrict __value,
                          struct itimerspec *__restrict __ovalue) ;


extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
            ;


extern int timer_getoverrun (timer_t __timerid) ;
# 30 "ext2_mkfs.c" 2
# 1 "/usr/include/unistd.h" 1 3
# 26 "/usr/include/unistd.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/unistd.h" 2 3
# 175 "/usr/include/unistd.h" 3
# 1 "/usr/include/bits/posix_opt.h" 1 3
# 176 "/usr/include/unistd.h" 2 3
# 190 "/usr/include/unistd.h" 3
# 1 "/usr/include/bits/types.h" 1 3
# 191 "/usr/include/unistd.h" 2 3
# 199 "/usr/include/unistd.h" 3
# 1 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stddef.h" 1 3
# 200 "/usr/include/unistd.h" 2 3
# 240 "/usr/include/unistd.h" 3
typedef __intptr_t intptr_t;






typedef __socklen_t socklen_t;
# 260 "/usr/include/unistd.h" 3
extern int access (__const char *__name, int __type) ;
# 290 "/usr/include/unistd.h" 3
extern __off_t lseek (int __fd, __off_t __offset, int __whence) ;
# 306 "/usr/include/unistd.h" 3
extern int close (int __fd) ;



extern ssize_t read (int __fd, void *__buf, size_t __nbytes) ;


extern ssize_t write (int __fd, __const void *__buf, size_t __n) ;
# 353 "/usr/include/unistd.h" 3
extern int pipe (int __pipedes[2]) ;
# 362 "/usr/include/unistd.h" 3
extern unsigned int alarm (unsigned int __seconds) ;
# 371 "/usr/include/unistd.h" 3
extern unsigned int sleep (unsigned int __seconds) ;






extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval)
            ;



extern int usleep (__useconds_t __useconds) ;





extern int pause (void) ;



extern int chown (__const char *__file, __uid_t __owner, __gid_t __group)
            ;



extern int fchown (int __fd, __uid_t __owner, __gid_t __group) ;




extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group)
            ;




extern int chdir (__const char *__path) ;



extern int fchdir (int __fd) ;
# 423 "/usr/include/unistd.h" 3
extern char *getcwd (char *__buf, size_t __size) ;
# 436 "/usr/include/unistd.h" 3
extern char *getwd (char *__buf) ;




extern int dup (int __fd) ;


extern int dup2 (int __fd, int __fd2) ;


extern char **__environ;







extern int execve (__const char *__path, char *__const __argv[],
                   char *__const __envp[]) ;
# 467 "/usr/include/unistd.h" 3
extern int execv (__const char *__path, char *__const __argv[]) ;



extern int execle (__const char *__path, __const char *__arg, ...) ;



extern int execl (__const char *__path, __const char *__arg, ...) ;



extern int execvp (__const char *__file, char *__const __argv[]) ;




extern int execlp (__const char *__file, __const char *__arg, ...) ;




extern int nice (int __inc) ;




extern void _exit (int __status) __attribute__ ((__noreturn__));





# 1 "/usr/include/bits/confname.h" 1 3
# 25 "/usr/include/bits/confname.h" 3
enum
  {
    _PC_LINK_MAX,

    _PC_MAX_CANON,

    _PC_MAX_INPUT,

    _PC_NAME_MAX,

    _PC_PATH_MAX,

    _PC_PIPE_BUF,

    _PC_CHOWN_RESTRICTED,

    _PC_NO_TRUNC,

    _PC_VDISABLE,

    _PC_SYNC_IO,

    _PC_ASYNC_IO,

    _PC_PRIO_IO,

    _PC_SOCK_MAXBUF,

    _PC_FILESIZEBITS,

    _PC_REC_INCR_XFER_SIZE,

    _PC_REC_MAX_XFER_SIZE,

    _PC_REC_MIN_XFER_SIZE,

    _PC_REC_XFER_ALIGN,

    _PC_ALLOC_SIZE_MIN,

    _PC_SYMLINK_MAX

  };


enum
  {
    _SC_ARG_MAX,

    _SC_CHILD_MAX,

    _SC_CLK_TCK,

    _SC_NGROUPS_MAX,

    _SC_OPEN_MAX,

    _SC_STREAM_MAX,

    _SC_TZNAME_MAX,

    _SC_JOB_CONTROL,

    _SC_SAVED_IDS,

    _SC_REALTIME_SIGNALS,

    _SC_PRIORITY_SCHEDULING,

    _SC_TIMERS,

    _SC_ASYNCHRONOUS_IO,

    _SC_PRIORITIZED_IO,

    _SC_SYNCHRONIZED_IO,

    _SC_FSYNC,

    _SC_MAPPED_FILES,

    _SC_MEMLOCK,

    _SC_MEMLOCK_RANGE,

    _SC_MEMORY_PROTECTION,

    _SC_MESSAGE_PASSING,

    _SC_SEMAPHORES,

    _SC_SHARED_MEMORY_OBJECTS,

    _SC_AIO_LISTIO_MAX,

    _SC_AIO_MAX,

    _SC_AIO_PRIO_DELTA_MAX,

    _SC_DELAYTIMER_MAX,

    _SC_MQ_OPEN_MAX,

    _SC_MQ_PRIO_MAX,

    _SC_VERSION,

    _SC_PAGESIZE,


    _SC_RTSIG_MAX,

    _SC_SEM_NSEMS_MAX,

    _SC_SEM_VALUE_MAX,

    _SC_SIGQUEUE_MAX,

    _SC_TIMER_MAX,




    _SC_BC_BASE_MAX,

    _SC_BC_DIM_MAX,

    _SC_BC_SCALE_MAX,

    _SC_BC_STRING_MAX,

    _SC_COLL_WEIGHTS_MAX,

    _SC_EQUIV_CLASS_MAX,

    _SC_EXPR_NEST_MAX,

    _SC_LINE_MAX,

    _SC_RE_DUP_MAX,

    _SC_CHARCLASS_NAME_MAX,


    _SC_2_VERSION,

    _SC_2_C_BIND,

    _SC_2_C_DEV,

    _SC_2_FORT_DEV,

    _SC_2_FORT_RUN,

    _SC_2_SW_DEV,

    _SC_2_LOCALEDEF,


    _SC_PII,

    _SC_PII_XTI,

    _SC_PII_SOCKET,

    _SC_PII_INTERNET,

    _SC_PII_OSI,

    _SC_POLL,

    _SC_SELECT,

    _SC_UIO_MAXIOV,

    _SC_IOV_MAX = _SC_UIO_MAXIOV,

    _SC_PII_INTERNET_STREAM,

    _SC_PII_INTERNET_DGRAM,

    _SC_PII_OSI_COTS,

    _SC_PII_OSI_CLTS,

    _SC_PII_OSI_M,

    _SC_T_IOV_MAX,



    _SC_THREADS,

    _SC_THREAD_SAFE_FUNCTIONS,

    _SC_GETGR_R_SIZE_MAX,

    _SC_GETPW_R_SIZE_MAX,

    _SC_LOGIN_NAME_MAX,

    _SC_TTY_NAME_MAX,

    _SC_THREAD_DESTRUCTOR_ITERATIONS,

    _SC_THREAD_KEYS_MAX,

    _SC_THREAD_STACK_MIN,

    _SC_THREAD_THREADS_MAX,

    _SC_THREAD_ATTR_STACKADDR,

    _SC_THREAD_ATTR_STACKSIZE,

    _SC_THREAD_PRIORITY_SCHEDULING,

    _SC_THREAD_PRIO_INHERIT,

    _SC_THREAD_PRIO_PROTECT,

    _SC_THREAD_PROCESS_SHARED,


    _SC_NPROCESSORS_CONF,

    _SC_NPROCESSORS_ONLN,

    _SC_PHYS_PAGES,

    _SC_AVPHYS_PAGES,

    _SC_ATEXIT_MAX,

    _SC_PASS_MAX,


    _SC_XOPEN_VERSION,

    _SC_XOPEN_XCU_VERSION,

    _SC_XOPEN_UNIX,

    _SC_XOPEN_CRYPT,

    _SC_XOPEN_ENH_I18N,

    _SC_XOPEN_SHM,


    _SC_2_CHAR_TERM,

    _SC_2_C_VERSION,

    _SC_2_UPE,


    _SC_XOPEN_XPG2,

    _SC_XOPEN_XPG3,

    _SC_XOPEN_XPG4,


    _SC_CHAR_BIT,

    _SC_CHAR_MAX,

    _SC_CHAR_MIN,

    _SC_INT_MAX,

    _SC_INT_MIN,

    _SC_LONG_BIT,

    _SC_WORD_BIT,

    _SC_MB_LEN_MAX,

    _SC_NZERO,

    _SC_SSIZE_MAX,

    _SC_SCHAR_MAX,

    _SC_SCHAR_MIN,

    _SC_SHRT_MAX,

    _SC_SHRT_MIN,

    _SC_UCHAR_MAX,

    _SC_UINT_MAX,

    _SC_ULONG_MAX,

    _SC_USHRT_MAX,


    _SC_NL_ARGMAX,

    _SC_NL_LANGMAX,

    _SC_NL_MSGMAX,

    _SC_NL_NMAX,

    _SC_NL_SETMAX,

    _SC_NL_TEXTMAX,


    _SC_XBS5_ILP32_OFF32,

    _SC_XBS5_ILP32_OFFBIG,

    _SC_XBS5_LP64_OFF64,

    _SC_XBS5_LPBIG_OFFBIG,


    _SC_XOPEN_LEGACY,

    _SC_XOPEN_REALTIME,

    _SC_XOPEN_REALTIME_THREADS,


    _SC_ADVISORY_INFO,

    _SC_BARRIERS,

    _SC_BASE,

    _SC_C_LANG_SUPPORT,

    _SC_C_LANG_SUPPORT_R,

    _SC_CLOCK_SELECTION,

    _SC_CPUTIME,

    _SC_THREAD_CPUTIME,

    _SC_DEVICE_IO,

    _SC_DEVICE_SPECIFIC,

    _SC_DEVICE_SPECIFIC_R,

    _SC_FD_MGMT,

    _SC_FIFO,

    _SC_PIPE,

    _SC_FILE_ATTRIBUTES,

    _SC_FILE_LOCKING,

    _SC_FILE_SYSTEM,

    _SC_MONOTONIC_CLOCK,

    _SC_MULTI_PROCESS,

    _SC_SINGLE_PROCESS,

    _SC_NETWORKING,

    _SC_READER_WRITER_LOCKS,

    _SC_SPIN_LOCKS,

    _SC_REGEXP,

    _SC_REGEX_VERSION,

    _SC_SHELL,

    _SC_SIGNALS,

    _SC_SPAWN,

    _SC_SPORADIC_SERVER,

    _SC_THREAD_SPORADIC_SERVER,

    _SC_SYSTEM_DATABASE,

    _SC_SYSTEM_DATABASE_R,

    _SC_TIMEOUTS,

    _SC_TYPED_MEMORY_OBJECTS,

    _SC_USER_GROUPS,

    _SC_USER_GROUPS_R,

    _SC_2_PBS,

    _SC_2_PBS_ACCOUNTING,

    _SC_2_PBS_LOCATE,

    _SC_2_PBS_MESSAGE,

    _SC_2_PBS_TRACK,

    _SC_SYMLOOP_MAX,

    _SC_STREAMS,

    _SC_2_PBS_CHECKPOINT,


    _SC_V6_ILP32_OFF32,

    _SC_V6_ILP32_OFFBIG,

    _SC_V6_LP64_OFF64,

    _SC_V6_LPBIG_OFFBIG,


    _SC_HOST_NAME_MAX,

    _SC_TRACE,

    _SC_TRACE_EVENT_FILTER,

    _SC_TRACE_INHERIT,

    _SC_TRACE_LOG

  };





enum
  {
    _CS_PATH,
# 563 "/usr/include/bits/confname.h" 3
    _CS_V6_WIDTH_RESTRICTED_ENVS,

  };
# 501 "/usr/include/unistd.h" 2 3


extern long int pathconf (__const char *__path, int __name) ;


extern long int fpathconf (int __fd, int __name) ;


extern long int sysconf (int __name) __attribute__ ((__const__));



extern size_t confstr (int __name, char *__buf, size_t __len) ;




extern __pid_t getpid (void) ;


extern __pid_t getppid (void) ;




extern __pid_t getpgrp (void) ;
# 536 "/usr/include/unistd.h" 3
extern __pid_t __getpgid (__pid_t __pid) ;
# 545 "/usr/include/unistd.h" 3
extern int setpgid (__pid_t __pid, __pid_t __pgid) ;
# 562 "/usr/include/unistd.h" 3
extern int setpgrp (void) ;
# 580 "/usr/include/unistd.h" 3
extern __pid_t setsid (void) ;







extern __uid_t getuid (void) ;


extern __uid_t geteuid (void) ;


extern __gid_t getgid (void) ;


extern __gid_t getegid (void) ;




extern int getgroups (int __size, __gid_t __list[]) ;
# 613 "/usr/include/unistd.h" 3
extern int setuid (__uid_t __uid) ;




extern int setreuid (__uid_t __ruid, __uid_t __euid) ;




extern int seteuid (__uid_t __uid) ;






extern int setgid (__gid_t __gid) ;




extern int setregid (__gid_t __rgid, __gid_t __egid) ;




extern int setegid (__gid_t __gid) ;






extern __pid_t fork (void) ;






extern __pid_t vfork (void) ;





extern char *ttyname (int __fd) ;



extern int ttyname_r (int __fd, char *__buf, size_t __buflen) ;



extern int isatty (int __fd) ;





extern int ttyslot (void) ;




extern int link (__const char *__from, __const char *__to) ;



extern int symlink (__const char *__from, __const char *__to) ;




extern int readlink (__const char *__restrict __path, char *__restrict __buf,
                     size_t __len) ;



extern int unlink (__const char *__name) ;


extern int rmdir (__const char *__path) ;



extern __pid_t tcgetpgrp (int __fd) ;


extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) ;



extern char *getlogin (void) ;
# 717 "/usr/include/unistd.h" 3
extern int setlogin (__const char *__name) ;
# 726 "/usr/include/unistd.h" 3
# 1 "/usr/include/getopt.h" 1 3
# 47 "/usr/include/getopt.h" 3
extern char *optarg;
# 61 "/usr/include/getopt.h" 3
extern int optind;




extern int opterr;



extern int optopt;
# 145 "/usr/include/getopt.h" 3
extern int getopt (int __argc, char *const *__argv, const char *__shortopts);
# 727 "/usr/include/unistd.h" 2 3







extern int gethostname (char *__name, size_t __len) ;






extern int sethostname (__const char *__name, size_t __len) ;



extern int sethostid (long int __id) ;





extern int getdomainname (char *__name, size_t __len) ;
extern int setdomainname (__const char *__name, size_t __len) ;





extern int vhangup (void) ;


extern int revoke (__const char *__file) ;







extern int profil (unsigned short int *__sample_buffer, size_t __size,
                   size_t __offset, unsigned int __scale) ;





extern int acct (__const char *__name) ;



extern char *getusershell (void) ;
extern void endusershell (void) ;
extern void setusershell (void) ;





extern int daemon (int __nochdir, int __noclose) ;






extern int chroot (__const char *__path) ;



extern char *getpass (__const char *__prompt) ;





extern int fsync (int __fd) ;






extern long int gethostid (void) ;


extern void sync (void) ;




extern int getpagesize (void) __attribute__ ((__const__));




extern int truncate (__const char *__file, __off_t __length) ;
# 841 "/usr/include/unistd.h" 3
extern int ftruncate (int __fd, __off_t __length) ;
# 857 "/usr/include/unistd.h" 3
extern int getdtablesize (void) ;
# 866 "/usr/include/unistd.h" 3
extern int brk (void *__addr) ;





extern void *sbrk (intptr_t __delta) ;
# 887 "/usr/include/unistd.h" 3
extern long int syscall (long int __sysno, ...) ;
# 907 "/usr/include/unistd.h" 3
extern int lockf (int __fd, int __cmd, __off_t __len) ;
# 938 "/usr/include/unistd.h" 3
extern int fdatasync (int __fildes) ;
# 983 "/usr/include/unistd.h" 3
extern int pthread_atfork (void (*__prepare) (void),
                           void (*__parent) (void),
                           void (*__child) (void)) ;
# 31 "ext2_mkfs.c" 2
# 1 "/usr/include/uuid/uuid.h" 1 3
# 12 "/usr/include/uuid/uuid.h" 3
# 1 "/usr/include/sys/types.h" 1 3
# 13 "/usr/include/uuid/uuid.h" 2 3
# 1 "/usr/include/sys/time.h" 1 3
# 22 "/usr/include/sys/time.h" 3
# 1 "/usr/include/features.h" 1 3
# 23 "/usr/include/sys/time.h" 2 3

# 1 "/usr/include/bits/types.h" 1 3
# 25 "/usr/include/sys/time.h" 2 3

# 1 "/usr/include/time.h" 1 3
# 27 "/usr/include/sys/time.h" 2 3

# 1 "/usr/include/bits/time.h" 1 3
# 29 "/usr/include/sys/time.h" 2 3

# 1 "/usr/include/sys/select.h" 1 3
# 31 "/usr/include/sys/time.h" 2 3


typedef __suseconds_t suseconds_t;
# 56 "/usr/include/sys/time.h" 3
struct timezone
  {
    int tz_minuteswest;
    int tz_dsttime;
  };

typedef struct timezone *__restrict __timezone_ptr_t;
# 72 "/usr/include/sys/time.h" 3
extern int gettimeofday (struct timeval *__restrict __tv,
                         __timezone_ptr_t __tz) ;




extern int settimeofday (__const struct timeval *__tv,
                         __const struct timezone *__tz) ;





extern int adjtime (__const struct timeval *__delta,
                    struct timeval *__olddelta) ;




enum __itimer_which
  {

    ITIMER_REAL = 0,


    ITIMER_VIRTUAL = 1,



    ITIMER_PROF = 2

  };



struct itimerval
  {

    struct timeval it_interval;

    struct timeval it_value;
  };




typedef int __itimer_which_t;




extern int getitimer (__itimer_which_t __which,
                      struct itimerval *__value) ;




extern int setitimer (__itimer_which_t __which,
                      __const struct itimerval *__restrict __new,
                      struct itimerval *__restrict __old) ;



extern int utimes (__const char *__file, __const struct timeval __tvp[2])
            ;
# 14 "/usr/include/uuid/uuid.h" 2 3
# 1 "/usr/include/time.h" 1 3
# 15 "/usr/include/uuid/uuid.h" 2 3

typedef unsigned char uuid_t[16];
# 25 "/usr/include/uuid/uuid.h" 3
void uuid_clear(uuid_t uu);


int uuid_compare(uuid_t uu1, uuid_t uu2);


void uuid_copy(uuid_t dst, uuid_t src);


void uuid_generate(uuid_t out);
void uuid_generate_random(uuid_t out);
void uuid_generate_time(uuid_t out);


int uuid_is_null(uuid_t uu);


int uuid_parse(char *in, uuid_t uu);


void uuid_unparse(uuid_t uu, char *out);


time_t uuid_time(uuid_t uu, struct timeval *ret_tv);
int uuid_type(uuid_t uu);
int uuid_variant(uuid_t uu);
# 32 "ext2_mkfs.c" 2
# 1 "ext2.h" 1
# 23 "ext2.h"
static const char _ext2_h[] = "$Id: ext2.h,v 1.6 1999/10/02 20:56:47 aclausen Exp $";

# 1 "config.h" 1
# 26 "ext2.h" 2

# 1 "parted/parted.h" 1
# 31 "parted/parted.h"
# 1 "parted/constraint.h" 1
# 23 "parted/constraint.h"
typedef struct _PedConstraint PedConstraint;

# 1 "parted/device.h" 1
# 24 "parted/device.h"
typedef long long PedSector;

typedef enum {
        PED_DEVICE_UNKNOWN = 0,
        PED_DEVICE_SCSI = 1,
        PED_DEVICE_IDE = 2,
        PED_DEVICE_DAC960 = 3,
        PED_DEVICE_CPQARRAY = 4,
        PED_DEVICE_FILE = 5
} PedDeviceType;

typedef struct _PedDevice PedDevice;


struct _PedDevice {
        PedDevice* next;

        char* model;
        char* path;

        PedDeviceType type;
        int sector_size;
        PedSector length;

        int open_count;
        int read_only;
        int external_mode;
        int dirty;
        int boot_dirty;
        int fd;



        int heads, sectors, cylinders;
        int geom_known;
        int geom_already_guessed;
        short host, did;
};

extern void ped_device_probe_all ();
extern void ped_device_free_all ();

extern PedDevice* ped_device_get (const char* name);
extern PedDevice* ped_device_get_next (const PedDevice* dev);
extern int ped_device_open (PedDevice* dev);
extern int ped_device_close (PedDevice* dev);

extern int ped_device_begin_external_access (PedDevice* dev);
extern int ped_device_end_external_access (PedDevice* dev);

extern int ped_device_read (const PedDevice* dev, void* buffer,
                            PedSector start, PedSector count);
extern int ped_device_write (PedDevice* dev, const void* buffer,
                             PedSector start, PedSector count);
extern int ped_device_sync (PedDevice* dev);
extern PedSector ped_device_check (PedDevice* dev, void* buffer,
                                   PedSector start, PedSector count);
# 26 "parted/constraint.h" 2
# 1 "parted/disk.h" 1
# 23 "parted/disk.h"
typedef struct _PedGeometry PedGeometry;
typedef struct _PedDisk PedDisk;
typedef struct _PedPartition PedPartition;
typedef const struct _PedDiskOps PedDiskOps;
typedef struct _PedDiskType PedDiskType;

# 1 "parted/device.h" 1
# 30 "parted/disk.h" 2
# 1 "parted/filesys.h" 1
# 23 "parted/filesys.h"
typedef struct _PedFileSystem PedFileSystem;
typedef struct _PedFileSystemType PedFileSystemType;
typedef const struct _PedFileSystemOps PedFileSystemOps;

# 1 "parted/disk.h" 1
# 28 "parted/filesys.h" 2
# 1 "parted/exception.h" 1
# 23 "parted/exception.h"
typedef struct _PedException PedException;

enum _PedExceptionType {
        PED_EXCEPTION_INFORMATION=1,
        PED_EXCEPTION_WARNING=2,
        PED_EXCEPTION_ERROR=3,
        PED_EXCEPTION_FATAL=4,
        PED_EXCEPTION_BUG=5,
        PED_EXCEPTION_NO_FEATURE=6,
};
typedef enum _PedExceptionType PedExceptionType;

enum _PedExceptionOption {
        PED_EXCEPTION_UNHANDLED=0,
        PED_EXCEPTION_FIX=1,
        PED_EXCEPTION_YES=2,
        PED_EXCEPTION_NO=4,
        PED_EXCEPTION_OK=8,
        PED_EXCEPTION_RETRY=16,
        PED_EXCEPTION_IGNORE=32,
        PED_EXCEPTION_CANCEL=64,
};
typedef enum _PedExceptionOption PedExceptionOption;
# 58 "parted/exception.h"
struct _PedException {
        char* message;
        PedExceptionType type;
        PedExceptionOption options;


};

typedef PedExceptionOption (PedExceptionHandler) (PedException* ex);

extern int ped_exception;

extern char* ped_exception_get_type_string (PedExceptionType ex_type);
extern char* ped_exception_get_option_string (PedExceptionOption ex_opt);

extern void ped_exception_set_handler (PedExceptionHandler* handler);

extern PedExceptionOption ped_exception_throw (PedExceptionType ex_type,
                                                     PedExceptionOption ex_opt,
                                                     const char* message,
                                                     ...);


extern PedExceptionOption ped_exception_rethrow ();



extern void ped_exception_catch ();



extern void ped_exception_fetch_all ();


extern void ped_exception_leave_all ();
# 29 "parted/filesys.h" 2
# 1 "parted/constraint.h" 1
# 30 "parted/filesys.h" 2
# 1 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stdio.h" 1 3
# 31 "parted/filesys.h" 2

struct _PedFileSystemOps {
        int (*probe) (const PedGeometry* geom);
        int (*clobber) (PedGeometry* geom);

        PedFileSystem* (*open) (const PedGeometry* geom);
        PedFileSystem* (*create) (PedGeometry* geom);
        int (*close) (PedFileSystem* fs);
        int (*check) (PedFileSystem* fs);
        int (*copy) (const PedFileSystem* fs, PedGeometry* geom);
        int (*resize) (PedFileSystem* fs, const PedGeometry* geom);

        PedConstraint* (*get_resize_constraint) (const PedFileSystem* fs);
        int (*set_system) (const PedFileSystem* fs, PedPartition* part,
                           const PedDiskType* disk_type);
};

struct _PedFileSystemType {
        PedFileSystemType* next;
        const char* const name;
        PedFileSystemOps* const ops;
};

struct _PedFileSystem {
        PedFileSystemType* type;
        PedGeometry* geom;
        void* type_specific;
};

extern void ped_file_system_type_register (PedFileSystemType* type);
extern void ped_file_system_type_unregister (PedFileSystemType* type);

extern PedFileSystemType* ped_file_system_type_get (const char* name);
extern PedFileSystemType*
ped_file_system_type_get_next (const PedFileSystemType* fs_type);

extern PedFileSystemType* ped_file_system_probe (const PedGeometry* geom);
extern int ped_file_system_clobber (PedGeometry* geom);

extern PedFileSystem* ped_file_system_open (PedGeometry* geom);
extern PedFileSystem* ped_file_system_create (PedGeometry* geom,
                                              PedFileSystemType* type);
extern int ped_file_system_close (PedFileSystem* fs);
extern int ped_file_system_check (PedFileSystem* fs);
extern int ped_file_system_copy (const PedFileSystem* fs, PedGeometry* geom);
extern int ped_file_system_resize (PedFileSystem* fs, const PedGeometry* geom);
extern PedConstraint* ped_file_system_get_resize_constraint (
                                const PedFileSystem* fs);
# 31 "parted/disk.h" 2
# 1 "parted/natmath.h" 1
# 23 "parted/natmath.h"
typedef struct _PedAlignment PedAlignment;

# 1 "parted/disk.h" 1
# 26 "parted/natmath.h" 2
# 47 "parted/natmath.h"
struct _PedAlignment {
        PedSector offset;
        PedSector grain_size;
};

extern PedSector ped_round_up_to (PedSector sector, PedSector grain_size);
extern PedSector ped_round_down_to (PedSector sector, PedSector grain_size);
extern PedSector ped_round_to_nearest (PedSector sector, PedSector grain_size);
extern PedSector ped_greatest_common_divisor (PedSector a, PedSector b);

extern int ped_alignment_init (PedAlignment* align, PedSector offset,
                               PedSector grain_size);
extern PedAlignment* ped_alignment_new (PedSector offset, PedSector grain_size);
extern void ped_alignment_destroy (PedAlignment* align);
extern PedAlignment* ped_alignment_duplicate (const PedAlignment* align);
extern PedAlignment* ped_alignment_intersect (const PedAlignment* a,
                                              const PedAlignment* b);

extern PedSector
ped_alignment_align_up (const PedAlignment* align, const PedGeometry* geom,
                        PedSector sector);
extern PedSector
ped_alignment_align_down (const PedAlignment* align, const PedGeometry* geom,
                          PedSector sector);
extern PedSector
ped_alignment_align_nearest (const PedAlignment* align, const PedGeometry* geom,
                             PedSector sector);

extern int
ped_alignment_is_aligned (const PedAlignment* align, const PedGeometry* geom,
                          PedSector sector);

extern const PedAlignment* ped_alignment_any;
extern const PedAlignment* ped_alignment_none;
# 32 "parted/disk.h" 2

struct _PedGeometry {
        PedDisk* disk;
        PedSector start;
        PedSector length;
        PedSector end;
};

typedef enum {
        PED_PARTITION_PRIMARY = 0x00,
        PED_PARTITION_LOGICAL = 0x01,
        PED_PARTITION_EXTENDED = 0x02,
        PED_PARTITION_FREESPACE = 0x04,
        PED_PARTITION_METADATA = 0x08
} PedPartitionType;

typedef enum {
        PED_PARTITION_BOOT=1,
        PED_PARTITION_ROOT=2,
        PED_PARTITION_SWAP=3,
        PED_PARTITION_HIDDEN=4,
        PED_PARTITION_RAID=5,
        PED_PARTITION_LVM=6,
        PED_PARTITION_LBA=7
} PedPartitionFlag;



typedef enum {
        PED_DISK_TYPE_EXTENDED=1,
        PED_DISK_TYPE_PARTITION_NAME=2
} PedDiskTypeFeature;



struct _PedPartition {
        PedPartition* prev;
        PedPartition* next;

        PedGeometry geom;
        int num;

        PedPartitionType type;
        const PedFileSystemType* fs_type;
        PedPartition* part_list;

        void* disk_specific;
};

struct _PedDisk {
        PedDevice* dev;
        PedDiskType* type;
        PedPartition* part_list;

        void* disk_specific;


        int update_mode;
};

struct _PedDiskOps {

        int (*probe) (const PedDevice *dev);
        PedDisk* (*open) (PedDevice* dev);
        PedDisk* (*create) (PedDevice* dev);
        int (*clobber) (PedDevice* dev);
        int (*close) (PedDisk* disk);
        int (*read) (PedDisk* disk);
        int (*write) (PedDisk* disk);


        PedPartition* (*partition_new) (
                const PedDisk* disk,
                PedPartitionType part_type,
                const PedFileSystemType* fs_type,
                PedSector start,
                PedSector end);
        void (*partition_destroy) (PedPartition* part);
        int (*partition_set_flag) (
                PedPartition* part,
                PedPartitionFlag flag,
                int state);
        int (*partition_get_flag) (
                const PedPartition* part,
                PedPartitionFlag flag);
        int (*partition_is_flag_available) (
                const PedPartition* part,
                PedPartitionFlag flag);
        void (*partition_set_name) (PedPartition* part, const char* name);
        const char* (*partition_get_name) (const PedPartition* part);
        int (*partition_align) (PedPartition* part,
                                const PedConstraint* constraint);
        int (*partition_enumerate) (PedPartition* part);
        int (*partition_set_extended_system) (PedPartition* part);


        int (*alloc_metadata) (PedDisk* disk);
        int (*get_max_primary_partition_count) (const PedDisk* disk);
};

struct _PedDiskType {
        PedDiskType* next;
        const char* name;
        PedDiskOps* const ops;

        PedDiskTypeFeature features;
};

extern void ped_register_disk_type (PedDiskType* type);
extern void ped_unregister_disk_type (PedDiskType* type);
extern PedDiskType* ped_disk_type_get_next (PedDiskType* type);
extern PedDiskType* ped_disk_type_get (const char* name);
extern PedDiskType* ped_disk_probe (const PedDevice* dev);
extern int ped_disk_type_check_feature (const PedDiskType* disk_type,
                                        PedDiskTypeFeature feature);

extern PedDisk* ped_disk_open (PedDevice* dev);
extern PedDisk* ped_disk_create (PedDevice* dev, PedDiskType* type);
extern int ped_disk_clobber (PedDisk* disk);
extern int ped_disk_close (PedDisk* disk);
extern int ped_disk_read (PedDisk* disk);
extern int ped_disk_write (PedDisk* disk);
extern int ped_disk_is_busy (const PedDisk* disk);
extern int ped_disk_get_max_primary_partition_count (const PedDisk* disk);
extern PedDisk* ped_disk_alloc (PedDevice* dev, PedDiskType* type);
extern void ped_disk_free (PedDisk* disk);

extern int ped_geometry_init (PedGeometry* geom, const PedDisk* disk,
                              PedSector start, PedSector length);
extern PedGeometry* ped_geometry_new (const PedDisk* disk, PedSector start,
                                      PedSector length);
extern PedGeometry* ped_geometry_duplicate (const PedGeometry* geom);
extern PedGeometry* ped_geometry_intersect (const PedGeometry* a,
                                            const PedGeometry* b);
extern void ped_geometry_destroy (PedGeometry* geom);
extern int ped_geometry_set (PedGeometry* geom, PedSector start,
                             PedSector length);
extern int ped_geometry_set_start (PedGeometry* geom, PedSector start);
extern int ped_geometry_set_end (PedGeometry* geom, PedSector end);
extern int ped_geometry_test_overlap (const PedGeometry* a,
                                      const PedGeometry* b);
extern int ped_geometry_test_inside (const PedGeometry* a,
                                     const PedGeometry* b);
extern int ped_geometry_test_equal (const PedGeometry* a, const PedGeometry* b);
extern int ped_geometry_test_sector_inside (const PedGeometry* geom,
                                            PedSector sect);

extern int ped_geometry_read (const PedGeometry* geom, void* buffer,
                              PedSector offset, PedSector count);
extern int ped_geometry_write (PedGeometry* geom, const void* buffer,
                               PedSector offset, PedSector count);
extern PedSector ped_geometry_check (PedGeometry* geom, void* buffer,
                                     PedSector buffer_size, PedSector offset,
                                     PedSector granularity, PedSector count);
extern int ped_geometry_sync (PedGeometry* geom);


extern PedSector ped_geometry_map (const PedGeometry* dst,
                                   const PedGeometry* src,
                                   PedSector sector);

extern PedPartition* ped_partition_alloc (const PedDisk* disk,
                                          PedPartitionType type,
                                          const PedFileSystemType* fs_type,
                                          PedSector start,
                                          PedSector end);
extern PedPartition* ped_partition_new (const PedDisk* disk,
                                        PedPartitionType type,
                                        const PedFileSystemType* fs_type,
                                        PedSector start,
                                        PedSector end);
extern void ped_partition_destroy (PedPartition* part);
extern int ped_partition_is_active (const PedPartition* part);
extern int ped_partition_set_flag (PedPartition* part, PedPartitionFlag flag,
                                   int state);
extern int ped_partition_get_flag (const PedPartition* part,
                                   PedPartitionFlag flag);
extern int ped_partition_is_flag_available (const PedPartition* part,
                                            PedPartitionFlag flag);
extern int ped_partition_set_system (PedPartition* part,
                                     const PedFileSystemType* fs_type);
extern int ped_partition_set_name (PedPartition* part, const char* name);
extern const char* ped_partition_get_name (const PedPartition* part);
extern int ped_partition_is_busy (const PedPartition* part);

extern const char* ped_partition_type_get_name (PedPartitionType part_type);
extern const char* ped_partition_flag_get_name (PedPartitionFlag flag);
extern PedPartitionFlag ped_partition_flag_get_by_name (const char* name);
extern PedPartitionFlag ped_partition_flag_next (PedPartitionFlag flag);

extern int ped_disk_add_partition (PedDisk* disk, PedPartition* part,
                                   const PedConstraint* constraint);
extern int ped_disk_remove_partition (PedDisk* disk, PedPartition* part);
extern int ped_disk_delete_partition (PedDisk* disk, PedPartition* part);
extern int ped_disk_delete_all (PedDisk* disk);
extern int ped_disk_set_partition_geom (PedDisk* disk, PedPartition* part,
                                        const PedConstraint* constraint,
                                        PedSector start, PedSector end);
extern int ped_disk_maximize_partition (PedDisk* disk, PedPartition* part,
                                        const PedConstraint* constraint);
extern PedGeometry* ped_disk_get_max_partition_geometry (PedDisk* disk,
                PedPartition* part, const PedConstraint* constraint);
extern int ped_disk_minimize_extended_partition (PedDisk* disk);

extern PedPartition* ped_disk_next_partition (const PedDisk* disk,
                                              const PedPartition* part);
extern PedPartition* ped_disk_get_partition (const PedDisk* disk, int num);
extern PedPartition* ped_disk_get_partition_by_sector (const PedDisk* disk,
                                                       PedSector sect);
extern PedPartition* ped_disk_extended_partition (const PedDisk* disk);
# 27 "parted/constraint.h" 2
# 1 "parted/natmath.h" 1
# 28 "parted/constraint.h" 2

struct _PedConstraint {
        PedAlignment* start_align;
        PedAlignment* end_align;
        PedGeometry* start_range;
        PedGeometry* end_range;
        PedSector min_size;
};

extern int
ped_constraint_init (
        PedConstraint* constraint,
        const PedAlignment* start_align,
        const PedAlignment* end_align,
        const PedGeometry* start_range,
        const PedGeometry* end_range,
        PedSector min_size);

extern PedConstraint*
ped_constraint_new (
        const PedAlignment* start_align,
        const PedAlignment* end_align,
        const PedGeometry* start_range,
        const PedGeometry* end_range,
        PedSector min_size);

extern PedConstraint*
ped_constraint_duplicate (const PedConstraint* constraint);

extern void
ped_constraint_done (PedConstraint* constraint);

extern void
ped_constraint_destroy (PedConstraint* constraint);

extern PedConstraint*
ped_constraint_intersect (const PedConstraint* a, const PedConstraint* b);

extern PedGeometry*
ped_constraint_solve_max (const PedConstraint* constraint);

extern PedGeometry*
ped_constraint_solve_nearest (
        const PedConstraint* constraint, const PedGeometry* geom);

extern int
ped_constraint_is_solution (const PedConstraint* constraint,
                            const PedGeometry* geom);

extern PedConstraint*
ped_constraint_any (const PedDisk* disk);

extern PedConstraint*
ped_constraint_exact (const PedGeometry* geom);

extern const PedConstraint* ped_constraint_none;
# 32 "parted/parted.h" 2
# 1 "parted/debug.h" 1
# 58 "parted/debug.h"
extern int
ped_assert (int cond, char* cond_text, char* file, int line, char* function);
# 33 "parted/parted.h" 2
# 1 "parted/device.h" 1
# 34 "parted/parted.h" 2
# 1 "parted/disk.h" 1
# 35 "parted/parted.h" 2
# 1 "parted/exception.h" 1
# 36 "parted/parted.h" 2
# 1 "parted/filesys.h" 1
# 37 "parted/parted.h" 2
# 1 "parted/natmath.h" 1
# 38 "parted/parted.h" 2

# 1 "/usr/include/stdlib.h" 1 3
# 40 "parted/parted.h" 2

extern int ped_init ();
extern void ped_done ();
extern const char* ped_get_version ();

extern void* ped_malloc (size_t size);
extern int ped_realloc (void** ptr, size_t size);
extern void ped_free (void* ptr);
# 28 "ext2.h" 2
# 1 "/usr/include/sys/types.h" 1 3
# 29 "ext2.h" 2
# 1 "tune.h" 1
# 23 "tune.h"
static const char _tune_h[] = "$Id: tune.h,v 1.1 1999/09/02 12:07:14 buytenh Exp $";



extern int ext2_buffer_cache_pool_size;
extern int ext2_hash_bits;
extern int ext2_max_groups;
extern int ext2_relocator_pool_size;
# 30 "ext2.h" 2

# 1 "/usr/include/libintl.h" 1 3
# 23 "/usr/include/libintl.h" 3
# 1 "/usr/include/features.h" 1 3
# 24 "/usr/include/libintl.h" 2 3
# 34 "/usr/include/libintl.h" 3
extern char *gettext (__const char *__msgid) ;



extern char *dgettext (__const char *__domainname, __const char *__msgid)
            ;
extern char *__dgettext (__const char *__domainname, __const char *__msgid)
             __attribute__ ((__format_arg__ (2)));



extern char *dcgettext (__const char *__domainname,
                        __const char *__msgid, int __category) ;
extern char *__dcgettext (__const char *__domainname,
                          __const char *__msgid, int __category)
             __attribute__ ((__format_arg__ (2)));




extern char *ngettext (__const char *__msgid1, __const char *__msgid2,
                       unsigned long int __n)
             __attribute__ ((__format_arg__ (1)));



extern char *dngettext (__const char *__domainname, __const char *__msgid1,
                        __const char *__msgid2, unsigned long int __n)
             __attribute__ ((__format_arg__ (2)));



extern char *dcngettext (__const char *__domainname, __const char *__msgid1,
                         __const char *__msgid2, unsigned long int __n,
                         int __category)
             __attribute__ ((__format_arg__ (2)));





extern char *textdomain (__const char *__domainname) ;



extern char *bindtextdomain (__const char *__domainname,
                             __const char *__dirname) ;



extern char *bind_textdomain_codeset (__const char *__domainname,
                                      __const char *__codeset) ;







# 1 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stddef.h" 1 3
# 94 "/usr/include/libintl.h" 2 3


# 1 "/usr/include/locale.h" 1 3
# 26 "/usr/include/locale.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/locale.h" 2 3


# 1 "/usr/lib/gcc-lib/i586-pc-linux-gnu/3.0/include/stddef.h" 1 3
# 30 "/usr/include/locale.h" 2 3
# 1 "/usr/include/bits/locale.h" 1 3
# 27 "/usr/include/bits/locale.h" 3
enum
{
  __LC_CTYPE = 0,
  __LC_NUMERIC = 1,
  __LC_TIME = 2,
  __LC_COLLATE = 3,
  __LC_MONETARY = 4,
  __LC_MESSAGES = 5,
  __LC_ALL = 6,
  __LC_PAPER = 7,
  __LC_NAME = 8,
  __LC_ADDRESS = 9,
  __LC_TELEPHONE = 10,
  __LC_MEASUREMENT = 11,
  __LC_IDENTIFICATION = 12
};
# 31 "/usr/include/locale.h" 2 3
# 52 "/usr/include/locale.h" 3
struct lconv
{


  char *decimal_point;
  char *thousands_sep;





  char *grouping;





  char *int_curr_symbol;
  char *currency_symbol;
  char *mon_decimal_point;
  char *mon_thousands_sep;
  char *mon_grouping;
  char *positive_sign;
  char *negative_sign;
  char int_frac_digits;
  char frac_digits;

  char p_cs_precedes;

  char p_sep_by_space;

  char n_cs_precedes;

  char n_sep_by_space;






  char p_sign_posn;
  char n_sign_posn;
# 112 "/usr/include/locale.h" 3
  char __int_p_cs_precedes;
  char __int_p_sep_by_space;
  char __int_n_cs_precedes;
  char __int_n_sep_by_space;
  char __int_p_sign_posn;
  char __int_n_sign_posn;

};



extern char *setlocale (int __category, __const char *__locale) ;


extern struct lconv *localeconv (void) ;
# 97 "/usr/include/libintl.h" 2 3
# 32 "ext2.h" 2
# 46 "ext2.h"
typedef u_int32_t blk_t;






# 1 "ext2_fs.h" 1
# 24 "ext2_fs.h"
static const char _ext2_fs_h[] = "$Id: ext2_fs.h,v 1.3 1999/12/31 09:36:41 buytenh Exp $";

# 1 "parted/endian.h" 1
# 25 "parted/endian.h"
# 1 "/usr/include/sys/types.h" 1 3
# 26 "parted/endian.h" 2
# 1 "config.h" 1
# 27 "parted/endian.h" 2
# 27 "ext2_fs.h" 2
# 77 "ext2_fs.h"
struct ext2_dir_entry_2
{
        u_int32_t inode;
        u_int16_t rec_len;
        u_int8_t name_len;
        u_int8_t file_type;
        char name[255];
};

struct ext2_group_desc
{
        u_int32_t bg_block_bitmap;
        u_int32_t bg_inode_bitmap;
        u_int32_t bg_inode_table;
        u_int16_t bg_free_blocks_count;
        u_int16_t bg_free_inodes_count;
        u_int16_t bg_used_dirs_count;
        u_int16_t bg_pad;
        u_int32_t bg_reserved[3];
};

struct ext2_inode
{
        u_int16_t i_mode;
        u_int16_t i_uid;
        u_int32_t i_size;
        u_int32_t i_atime;
        u_int32_t i_ctime;
        u_int32_t i_mtime;
        u_int32_t i_dtime;
        u_int16_t i_gid;
        u_int16_t i_links_count;
        u_int32_t i_blocks;
        u_int32_t i_flags;
        union {
                struct {
                        u_int32_t l_i_reserved1;
                } linux1;
                struct {
                        u_int32_t h_i_translator;
                } hurd1;
                struct {
                        u_int32_t m_i_reserved1;
                } masix1;
        } osd1;
        u_int32_t i_block[(((12 + 1) + 1) + 1)];
        u_int32_t i_generation;
        u_int32_t i_file_acl;
        u_int32_t i_dir_acl;
        u_int32_t i_faddr;
        union {
                struct {
                        u_int8_t l_i_frag;
                        u_int8_t l_i_fsize;
                        u_int16_t i_pad1;
                        u_int32_t l_i_reserved2[2];
                } linux2;
                struct {
                        u_int8_t h_i_frag;
                        u_int8_t h_i_fsize;
                        u_int16_t h_i_mode_high;
                        u_int16_t h_i_uid_high;
                        u_int16_t h_i_gid_high;
                        u_int32_t h_i_author;
                } hurd2;
                struct {
                        u_int8_t m_i_frag;
                        u_int8_t m_i_fsize;
                        u_int16_t m_pad1;
                        u_int32_t m_i_reserved2[2];
                } masix2;
        } osd2;
};

struct ext2_super_block
{
        u_int32_t s_inodes_count;
        u_int32_t s_blocks_count;
        u_int32_t s_r_blocks_count;
        u_int32_t s_free_blocks_count;
        u_int32_t s_free_inodes_count;
        u_int32_t s_first_data_block;
        u_int32_t s_log_block_size;
        int32_t s_log_frag_size;
        u_int32_t s_blocks_per_group;
        u_int32_t s_frags_per_group;
        u_int32_t s_inodes_per_group;
        u_int32_t s_mtime;
        u_int32_t s_wtime;
        u_int16_t s_mnt_count;
        int16_t s_max_mnt_count;
        u_int16_t s_magic;
        u_int16_t s_state;
        u_int16_t s_errors;
        u_int16_t s_minor_rev_level;
        u_int32_t s_lastcheck;
        u_int32_t s_checkinterval;
        u_int32_t s_creator_os;
        u_int32_t s_rev_level;
        u_int16_t s_def_resuid;
        u_int16_t s_def_resgid;
# 191 "ext2_fs.h"
        u_int32_t s_first_ino;
        u_int16_t s_inode_size;
        u_int16_t s_block_group_nr;
        u_int32_t s_feature_compat;
        u_int32_t s_feature_incompat;
        u_int32_t s_feature_ro_compat;
        u_int8_t s_uuid[16];
        char s_volume_name[16];
        char s_last_mounted[64];
        u_int32_t s_algorithm_usage_bitmap;




        u_int8_t s_prealloc_blocks;
        u_int8_t s_prealloc_dir_blocks;
        u_int16_t s_padding1;
        u_int32_t s_reserved[204];
};
# 54 "ext2.h" 2


extern unsigned char _bitmap[8];

struct ext2_buffer_cache
{
        struct ext2_buffer_head *cache;
        struct ext2_buffer_head *heads;
        struct ext2_buffer_head **hash;
        struct ext2_fs *fs;

        int size;
        int numalloc;
        unsigned char *buffermem;
};

struct ext2_buffer_head
{
        struct ext2_buffer_head *next;
        struct ext2_buffer_head *prev;
        unsigned char *data;
        blk_t block;

        int usecount;
        int dirty;

        struct ext2_buffer_cache *bc;
        int alloc;
};

struct ext2_dev_ops
{
        int (*close)(void *cookie);
        blk_t (*get_size)(void *cookie);
        int (*read)(void *cookie, void *ptr, blk_t block, blk_t num);
        int (*set_blocksize)(void *cookie, int logsize);
        int (*sync)(void *cookie);
        int (*write)(void *cookie, void *ptr, blk_t block, blk_t num);
};

struct ext2_dev_handle
{
        struct ext2_dev_ops *ops;
        void *cookie;
};

struct ext2_fs
{
        struct ext2_dev_handle *devhandle;

        struct ext2_super_block sb;
        struct ext2_group_desc *gd;
        struct ext2_buffer_cache *bc;
        int metadirty;



        int sparse;

        int blocksize;
        int logsize;
        blk_t adminblocks;
        blk_t gdblocks;
        blk_t itoffset;
        blk_t inodeblocks;
        int numgroups;
        int r_frac;

        unsigned char *relocator_pool;
        unsigned char *relocator_pool_end;

        int opt_debug;
        int opt_safe;
        int opt_verbose;

        void *journal;
};
# 149 "ext2.h"
int ext2_copy_block (struct ext2_fs *fs, blk_t from, blk_t to);
void ext2_close (struct ext2_fs *fs);
int ext2_commit_metadata (struct ext2_fs *fs, int copies);
off_t ext2_get_inode_offset (struct ext2_fs *fs, ino_t inode, blk_t *block);
blk_t ext2_find_free_block (struct ext2_fs *fs);
ino_t ext2_find_free_inode (struct ext2_fs *fs);
int ext2_get_inode_state (struct ext2_fs *fs, ino_t inode);
int ext2_is_group_sparse (struct ext2_fs *fs, int group);
int ext2_move_blocks (struct ext2_fs *fs, blk_t src, blk_t num, blk_t dest);
struct ext2_fs *ext2_open (struct ext2_dev_handle *handle, int state);
int ext2_read_blocks (struct ext2_fs *fs, void *ptr, blk_t block, blk_t numblocks);
int ext2_read_inode (struct ext2_fs *fs, ino_t inode, struct ext2_inode *inodep);
int ext2_set_inode_state (struct ext2_fs *fs, ino_t inode, int state, int updatemetadata);
int ext2_do_inode (struct ext2_fs *fs, struct ext2_inode *inode, blk_t block, int action);
int ext2_sync (struct ext2_fs *fs);
int ext2_write_blocks (struct ext2_fs *fs, void *ptr, blk_t block, blk_t numblocks);
int ext2_write_inode (struct ext2_fs *fs, ino_t inode, const struct ext2_inode *inodep);
int ext2_zero_blocks (struct ext2_fs *fs, blk_t block, blk_t num);
int ext2_zero_inode (struct ext2_fs *fs, ino_t inode);


void ext2_bgbitmap_cache_deinit (struct ext2_fs *fs);
int ext2_bgbitmap_cache_flush (struct ext2_fs *fs);
int ext2_bgbitmap_cache_init (struct ext2_fs *fs);
int ext2_get_block_state (struct ext2_fs *, blk_t block);
int ext2_set_block_state (struct ext2_fs *, blk_t block, int state, int updatemetadata);


int ext2_block_relocate (struct ext2_fs *fs, blk_t newsize);


void ext2_bcache_deinit (struct ext2_fs *fs);
void ext2_bcache_dump (struct ext2_fs *fs);
int ext2_bcache_flush (struct ext2_fs *fs, blk_t block);
int ext2_bcache_flush_range (struct ext2_fs *fs, blk_t first, blk_t last);
int ext2_bcache_init (struct ext2_fs *fs);
int ext2_bcache_sync (struct ext2_fs *fs);
struct ext2_buffer_head *ext2_bcreate (struct ext2_fs *fs, blk_t block);
struct ext2_buffer_head *ext2_bread (struct ext2_fs *fs, blk_t block);
int ext2_brelse (struct ext2_buffer_head *bh, int forget);


int ext2_inode_relocate (struct ext2_fs *fs, int newgroups);


void ext2_journal_deinit (struct ext2_fs *fs);
int ext2_journal_init (struct ext2_fs *fs);


int ext2_metadata_push (struct ext2_fs *fs, blk_t newsize);


struct ext2_fs *ext2_mkfs (struct ext2_dev_handle *handle, blk_t numblocks, int log_block_size, blk_t blocks_per_group, int inodes_per_group, int sparse_sb, int reserved_block_percentage);


int ext2_resize_fs (struct ext2_fs *fs, blk_t newsize);


struct ext2_dev_handle *ext2_make_dev_handle_from_file(char *dev);




static __inline__ int ext2_is_data_block(struct ext2_fs *fs, blk_t block)
{
        blk_t blk;
        int group;

        if (!ped_assert (block >= (((fs->sb).s_first_data_block)), "block >= EXT2_SUPER_FIRST_DATA_BLOCK(fs->sb)", "ext2.h", 217, __PRETTY_FUNCTION__)) { return 0; };
        if (!ped_assert (block < (((fs->sb).s_blocks_count)), "block < EXT2_SUPER_BLOCKS_COUNT(fs->sb)", "ext2.h", 218, __PRETTY_FUNCTION__)) { return 0; };

        blk = block - (((fs->sb).s_first_data_block));

        group = blk / (((fs->sb).s_blocks_per_group));
        blk %= (((fs->sb).s_blocks_per_group));

        if (ext2_is_group_sparse(fs, group) && blk <= fs->gdblocks)
                return 0;

        if (block == (((fs->gd[group]).bg_block_bitmap)) ||
            block == (((fs->gd[group]).bg_inode_bitmap)))
                return 0;

        if (block >= (((fs->gd[group]).bg_inode_table)) &&
            block < (((fs->gd[group]).bg_inode_table)) + fs->inodeblocks)
                return 0;

        return 1;
}
# 33 "ext2_mkfs.c" 2







static __inline__ int is_root(int x, int y)
{
        if (!x)
                return 1;

        while (1)
        {
                if (x == 1)
                        return 1;

                if (x % y)
                        return 0;

                x /= y;
        }
}

static __inline__ int is_group_sparse(int sparsesbfs, int group)
{
        if (!sparsesbfs)
                return 1;

        if (is_root(group, 3) || is_root(group, 5) || is_root(group, 7))
                return 1;

        return 0;
}





static int ext2_mkfs_write_main(struct ext2_dev_handle *handle,
                                struct ext2_super_block *sb,
                                struct ext2_group_desc *gd)
{
        int freeit;
        int i;
        int numgroups;
        int gdblocks;
        unsigned char *sbbuf;

        freeit = 0;
        sbbuf = (unsigned char *)sb;
        if ((((*sb).s_log_block_size)))
        {
                sbbuf = ped_malloc(1024 << (((*sb).s_log_block_size)));
                if (!handle->ops->read(handle->cookie, sbbuf, 0, 1))
                        return 0;
                memcpy(sbbuf+1024, sb, 1024);
                freeit = 1;
        }

        numgroups = ((((((*sb).s_blocks_count)) - (((*sb).s_first_data_block)))+(((((*sb).s_blocks_per_group)))-1))/((((*sb).s_blocks_per_group))));


        gdblocks = (((numgroups * sizeof(struct ext2_group_desc))+((1024 << (((*sb).s_log_block_size)))-1))/(1024 << (((*sb).s_log_block_size))));


        for (i=0;i<numgroups;i++)
        {
                if (is_group_sparse((((*sb).s_feature_ro_compat)) & 0x0001, (i)))
                {
                        int offset;

                        offset = (((*sb).s_first_data_block))
                                 + i * (((*sb).s_blocks_per_group));

                        if (!handle->ops->write(handle->cookie, sbbuf,
                                                offset, 1))
                                return 0;
                        if (!handle->ops->write(handle->cookie, gd, offset+1,
                                                gdblocks))
                                return 0;
                }
        }

        if (freeit)
                ped_free(sbbuf);
        return 1;
}

static int ext2_mkfs_write_meta(struct ext2_dev_handle *handle,
                                struct ext2_super_block *sb,
                                struct ext2_group_desc *gd)
{
        int blocksize;
        int gdtsize;
        int i;
        int itsize;
        int numgroups;
        unsigned char *bb;
        unsigned char *ib;
        unsigned char *zero;

        blocksize = 1 << ((((*sb).s_log_block_size)) + 13);

        numgroups = ((((((*sb).s_blocks_count)) - (((*sb).s_first_data_block)))+(((((*sb).s_blocks_per_group)))-1))/((((*sb).s_blocks_per_group))));


        itsize = (((sizeof(struct ext2_inode) * (((*sb).s_inodes_per_group)))+(((1024 << (((*sb).s_log_block_size))))-1))/((1024 << (((*sb).s_log_block_size)))));


        gdtsize = (((sizeof(struct ext2_group_desc) * numgroups)+(((1024 << (((*sb).s_log_block_size))))-1))/((1024 << (((*sb).s_log_block_size)))));


        bb = ped_malloc(1024 << (((*sb).s_log_block_size)));
        if (!bb) goto error;
        ib = ped_malloc(1024 << (((*sb).s_log_block_size)));
        if (!ib) goto error_free_bb;
        zero = ped_malloc((1024 << (((*sb).s_log_block_size))) * itsize);
        if (!zero) goto error_free_zero;

        (__extension__ (__builtin_constant_p ((1024 << (((*sb).s_log_block_size))) * itsize) && ((1024 << (((*sb).s_log_block_size))) * itsize) <= 16 ? (((1024 << (((*sb).s_log_block_size))) * itsize) == 1 ? ({ void *__s = (zero); *((__uint8_t *) __s) = (__uint8_t) 0; __s; }) : ({ void *__s = (zero); union { unsigned int __ui; unsigned short int __usi; unsigned char __uc; } *__u = __s; __uint8_t __c = (__uint8_t) (0); switch ((unsigned int) ((1024 << (((*sb).s_log_block_size))) * itsize)) { case 15: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 11: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 7: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 3: __u->__usi = (unsigned short int) __c * 0x0101; __u = __extension__ ((void *) __u + 2); __u->__uc = (unsigned char) __c; break; case 14: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 10: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 6: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 2: __u->__usi = (unsigned short int) __c * 0x0101; break; case 13: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 9: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 5: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 1: __u->__uc = (unsigned char) __c; break; case 16: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 12: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 8: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 4: __u->__ui = __c * 0x01010101; case 0: break; } __s; })) : (__builtin_constant_p (0) && (0) == '\0' ? ({ void *__s = (zero); __builtin_memset (__s, '\0', (1024 << (((*sb).s_log_block_size))) * itsize); __s; }) : memset (zero, 0, (1024 << (((*sb).s_log_block_size))) * itsize))));

        for (i=0;i<numgroups;i++)
        {
                int admin;
                blk_t bbblock;
                int groupsize;
                int groupoffset;
                blk_t ibblock;
                int j;

                groupoffset = i*(((*sb).s_blocks_per_group))
                              + (((*sb).s_first_data_block));
                groupsize = ( (((((*sb).s_blocks_count)) - groupoffset)<((((*sb).s_blocks_per_group)))) ? ((((*sb).s_blocks_count)) - groupoffset) : ((((*sb).s_blocks_per_group))) );


                admin = itsize + 2;
                bbblock = groupoffset;
                ibblock = groupoffset + 1;
                if (is_group_sparse((((*sb).s_feature_ro_compat)) & 0x0001, (i)))
                {
                        admin += gdtsize + 1;
                        bbblock = groupoffset + gdtsize + 1;
                        ibblock = groupoffset + gdtsize + 2;
                }

                {
                        (__extension__ (__builtin_constant_p (1024 << (((*sb).s_log_block_size))) && (1024 << (((*sb).s_log_block_size))) <= 16 ? ((1024 << (((*sb).s_log_block_size))) == 1 ? ({ void *__s = (bb); *((__uint8_t *) __s) = (__uint8_t) 0; __s; }) : ({ void *__s = (bb); union { unsigned int __ui; unsigned short int __usi; unsigned char __uc; } *__u = __s; __uint8_t __c = (__uint8_t) (0); switch ((unsigned int) (1024 << (((*sb).s_log_block_size)))) { case 15: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 11: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 7: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 3: __u->__usi = (unsigned short int) __c * 0x0101; __u = __extension__ ((void *) __u + 2); __u->__uc = (unsigned char) __c; break; case 14: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 10: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 6: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 2: __u->__usi = (unsigned short int) __c * 0x0101; break; case 13: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 9: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 5: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 1: __u->__uc = (unsigned char) __c; break; case 16: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 12: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 8: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 4: __u->__ui = __c * 0x01010101; case 0: break; } __s; })) : (__builtin_constant_p (0) && (0) == '\0' ? ({ void *__s = (bb); __builtin_memset (__s, '\0', 1024 << (((*sb).s_log_block_size))); __s; }) : memset (bb, 0, 1024 << (((*sb).s_log_block_size))))));
                        if (is_group_sparse((((*sb).s_feature_ro_compat)) & 0x0001, (i)))
                                for (j=0;j<gdtsize+1;j++)
                                        bb[j>>3] |= _bitmap[j&7];

                        j = bbblock - groupoffset;
                        bb[j>>3] |= _bitmap[j&7];

                        j = ibblock - groupoffset;
                        bb[j>>3] |= _bitmap[j&7];

                        for (j=0;j<itsize;j++)
                        {
                                int k = j + gdtsize + 3;

                                bb[k>>3] |= _bitmap[k&7];
                        }

                        for (j=groupsize;j<blocksize;j++)
                                bb[j>>3] |= _bitmap[j&7];

                        if (!handle->ops->write(handle->cookie, bb, bbblock, 1))
                                goto error_free_zero;
                }

                {
                        (__extension__ (__builtin_constant_p (1024 << (((*sb).s_log_block_size))) && (1024 << (((*sb).s_log_block_size))) <= 16 ? ((1024 << (((*sb).s_log_block_size))) == 1 ? ({ void *__s = (ib); *((__uint8_t *) __s) = (__uint8_t) 0; __s; }) : ({ void *__s = (ib); union { unsigned int __ui; unsigned short int __usi; unsigned char __uc; } *__u = __s; __uint8_t __c = (__uint8_t) (0); switch ((unsigned int) (1024 << (((*sb).s_log_block_size)))) { case 15: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 11: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 7: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 3: __u->__usi = (unsigned short int) __c * 0x0101; __u = __extension__ ((void *) __u + 2); __u->__uc = (unsigned char) __c; break; case 14: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 10: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 6: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 2: __u->__usi = (unsigned short int) __c * 0x0101; break; case 13: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 9: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 5: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 1: __u->__uc = (unsigned char) __c; break; case 16: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 12: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 8: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 4: __u->__ui = __c * 0x01010101; case 0: break; } __s; })) : (__builtin_constant_p (0) && (0) == '\0' ? ({ void *__s = (ib); __builtin_memset (__s, '\0', 1024 << (((*sb).s_log_block_size))); __s; }) : memset (ib, 0, 1024 << (((*sb).s_log_block_size))))));

                        for (j=(((*sb).s_inodes_per_group));j<blocksize;j++)
                                bb[j>>3] |= _bitmap[j&7];

                        if (!handle->ops->write(handle->cookie, ib, ibblock, 1))
                                goto error_free_zero;
                }

                if (!handle->ops->write(handle->cookie, zero,
                                        groupoffset + gdtsize + 3, itsize))
                        goto error_free_zero;

                gd[i].bg_block_bitmap = (bbblock);
                gd[i].bg_inode_bitmap = (ibblock);
                gd[i].bg_inode_table = (groupoffset + gdtsize + 3);

                gd[i].bg_free_blocks_count = (groupsize - admin);
                gd[i].bg_free_inodes_count = ((((*sb).s_inodes_per_group)));

                gd[i].bg_used_dirs_count = 0;
                gd[i].bg_used_dirs_count = 0;
                gd[i].bg_pad = 0;
                gd[i].bg_reserved[0] = 0;
                gd[i].bg_reserved[1] = 0;
                gd[i].bg_reserved[2] = 0;

                sb->s_free_blocks_count = ((((*sb).s_free_blocks_count)) + (((gd[i]).bg_free_blocks_count)));


        }

        ped_free(zero);
        ped_free(ib);
        ped_free(bb);
        return 1;

error_free_zero:
        ped_free(zero);
error_free_ib:
        ped_free(ib);
error_free_bb:
        ped_free(bb);
error:
        return 0;
}


static int _set_dirent(void* buf, int offset, int block_size, int is_last,
                       u_int32_t inode, char* name, int file_type)
{
        struct ext2_dir_entry_2 *dirent = (void*) (((char*)buf) + offset);
        int name_len = strlen(name);
        int rec_len;

        if (is_last)
                rec_len = block_size - offset;
        else
                rec_len = ped_round_up_to(name_len + 1 + 8, 4);

        (__extension__ (__builtin_constant_p (rec_len) && (rec_len) <= 16 ? ((rec_len) == 1 ? ({ void *__s = (dirent); *((__uint8_t *) __s) = (__uint8_t) 0; __s; }) : ({ void *__s = (dirent); union { unsigned int __ui; unsigned short int __usi; unsigned char __uc; } *__u = __s; __uint8_t __c = (__uint8_t) (0); switch ((unsigned int) (rec_len)) { case 15: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 11: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 7: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 3: __u->__usi = (unsigned short int) __c * 0x0101; __u = __extension__ ((void *) __u + 2); __u->__uc = (unsigned char) __c; break; case 14: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 10: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 6: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 2: __u->__usi = (unsigned short int) __c * 0x0101; break; case 13: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 9: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 5: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 1: __u->__uc = (unsigned char) __c; break; case 16: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 12: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 8: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 4: __u->__ui = __c * 0x01010101; case 0: break; } __s; })) : (__builtin_constant_p (0) && (0) == '\0' ? ({ void *__s = (dirent); __builtin_memset (__s, '\0', rec_len); __s; }) : memset (dirent, 0, rec_len))));

        dirent->inode = (inode);
        dirent->name_len = name_len;
        dirent->rec_len = (rec_len);
        dirent->file_type = file_type;
        (__extension__ (__builtin_constant_p (name) ? (((size_t)(const void *)((name) + 1) - (size_t)(const void *)(name) == 1) && strlen (name) + 1 <= 8 ? __strcpy_small (dirent->name, __extension__ (((__const unsigned char *) (__const char *) (name))[0 + 1] << 8 | ((__const unsigned char *) (__const char *) (name))[0]), __extension__ (((__const unsigned char *) (__const char *) (name))[4 + 1] << 8 | ((__const unsigned char *) (__const char *) (name))[4]), __extension__ (((((__const unsigned char *) (__const char *) (name))[0 + 3] << 8 | ((__const unsigned char *) (__const char *) (name))[0 + 2]) << 8 | ((__const unsigned char *) (__const char *) (name))[0 + 1]) << 8 | ((__const unsigned char *) (__const char *) (name))[0]), __extension__ (((((__const unsigned char *) (__const char *) (name))[4 + 3] << 8 | ((__const unsigned char *) (__const char *) (name))[4 + 2]) << 8 | ((__const unsigned char *) (__const char *) (name))[4 + 1]) << 8 | ((__const unsigned char *) (__const char *) (name))[4]), strlen (name) + 1) : (char *) memcpy (dirent->name, name, strlen (name) + 1)) : strcpy (dirent->name, name)));

        return offset + rec_len;
}

static int ext2_mkfs_create_lost_and_found_inode(struct ext2_fs *fs)
{
        struct ext2_buffer_head *bh;
        blk_t blocks[12];
        u_int32_t data[fs->blocksize / 4];
        int i;
        struct ext2_inode inode;
        int offset;

        for (i=0;i<12;i++)
        {
                if (!(blocks[i] = ext2_find_free_block(fs)))
                        return 0;

                if (!ext2_set_block_state(fs, blocks[i], 1, 1))
                        return 0;
        }



        bh = ext2_bcreate(fs, blocks[0]);
        if (!bh)
                return 0;
        (__extension__ (__builtin_constant_p (fs->blocksize) && (fs->blocksize) <= 16 ? ((fs->blocksize) == 1 ? ({ void *__s = (bh->data); *((__uint8_t *) __s) = (__uint8_t) 0; __s; }) : ({ void *__s = (bh->data); union { unsigned int __ui; unsigned short int __usi; unsigned char __uc; } *__u = __s; __uint8_t __c = (__uint8_t) (0); switch ((unsigned int) (fs->blocksize)) { case 15: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 11: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 7: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 3: __u->__usi = (unsigned short int) __c * 0x0101; __u = __extension__ ((void *) __u + 2); __u->__uc = (unsigned char) __c; break; case 14: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 10: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 6: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 2: __u->__usi = (unsigned short int) __c * 0x0101; break; case 13: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 9: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 5: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 1: __u->__uc = (unsigned char) __c; break; case 16: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 12: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 8: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 4: __u->__ui = __c * 0x01010101; case 0: break; } __s; })) : (__builtin_constant_p (0) && (0) == '\0' ? ({ void *__s = (bh->data); __builtin_memset (__s, '\0', fs->blocksize); __s; }) : memset (bh->data, 0, fs->blocksize))));
        offset = _set_dirent(bh->data, 0, fs->blocksize, 0,
                             11, ".", 2);
        offset = _set_dirent(bh->data, offset, fs->blocksize, 1,
                             2, "..", 2);
        bh->dirty = 1;
        ext2_brelse(bh, 1);


        (__extension__ (__builtin_constant_p (fs->blocksize) && (fs->blocksize) <= 16 ? ((fs->blocksize) == 1 ? ({ void *__s = (data); *((__uint8_t *) __s) = (__uint8_t) 0; __s; }) : ({ void *__s = (data); union { unsigned int __ui; unsigned short int __usi; unsigned char __uc; } *__u = __s; __uint8_t __c = (__uint8_t) (0); switch ((unsigned int) (fs->blocksize)) { case 15: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 11: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 7: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 3: __u->__usi = (unsigned short int) __c * 0x0101; __u = __extension__ ((void *) __u + 2); __u->__uc = (unsigned char) __c; break; case 14: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 10: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 6: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 2: __u->__usi = (unsigned short int) __c * 0x0101; break; case 13: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 9: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 5: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 1: __u->__uc = (unsigned char) __c; break; case 16: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 12: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 8: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 4: __u->__ui = __c * 0x01010101; case 0: break; } __s; })) : (__builtin_constant_p (0) && (0) == '\0' ? ({ void *__s = (data); __builtin_memset (__s, '\0', fs->blocksize); __s; }) : memset (data, 0, fs->blocksize))));
        data[0] = 0;
        data[1] = (fs->blocksize);
        for (i=1;i<12;i++)
        {
                bh = ext2_bcreate(fs, blocks[i]);
                memcpy(bh->data, data, fs->blocksize);
                bh->dirty = 1;
                ext2_brelse(bh, 1);
        }


        (__extension__ (__builtin_constant_p (sizeof(struct ext2_inode)) && (sizeof(struct ext2_inode)) <= 16 ? ((sizeof(struct ext2_inode)) == 1 ? ({ void *__s = (&inode); *((__uint8_t *) __s) = (__uint8_t) 0; __s; }) : ({ void *__s = (&inode); union { unsigned int __ui; unsigned short int __usi; unsigned char __uc; } *__u = __s; __uint8_t __c = (__uint8_t) (0); switch ((unsigned int) (sizeof(struct ext2_inode))) { case 15: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 11: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 7: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 3: __u->__usi = (unsigned short int) __c * 0x0101; __u = __extension__ ((void *) __u + 2); __u->__uc = (unsigned char) __c; break; case 14: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 10: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 6: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 2: __u->__usi = (unsigned short int) __c * 0x0101; break; case 13: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 9: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 5: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 1: __u->__uc = (unsigned char) __c; break; case 16: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 12: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 8: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 4: __u->__ui = __c * 0x01010101; case 0: break; } __s; })) : (__builtin_constant_p (0) && (0) == '\0' ? ({ void *__s = (&inode); __builtin_memset (__s, '\0', sizeof(struct ext2_inode)); __s; }) : memset (&inode, 0, sizeof(struct ext2_inode)))));
        inode.i_mode = (0040000 | 0755);
        inode.i_uid = 0;
        inode.i_size = (12 * fs->blocksize);
        inode.i_atime = (time(((void *)0)));
        inode.i_ctime = (time(((void *)0)));
        inode.i_mtime = (time(((void *)0)));
        inode.i_dtime = 0;
        inode.i_gid = 0;
        inode.i_links_count = (2);
        inode.i_blocks = ((12 * fs->blocksize) >> 9);
        inode.i_flags = 0;
        for (i=0;i<12;i++)
                inode.i_block[i] = (blocks[i]);

        if (!ext2_write_inode(fs, 11, &inode))
                return 0;
        fs->gd[0].bg_used_dirs_count = ((((fs->gd[0]).bg_used_dirs_count)) + 1);

        fs->metadirty |= (4 | 8);

        return 1;
}

static int ext2_mkfs_create_root_inode(struct ext2_fs *fs)
{
        struct ext2_buffer_head *bh;
        blk_t block;
        u_int32_t data[fs->blocksize / 4];
        struct ext2_inode inode;
        int offset;

        if (!(block = ext2_find_free_block(fs)))
                return 0;
        if (!ext2_set_block_state(fs, block, 1, 1))
                return 0;


        (__extension__ (__builtin_constant_p (fs->blocksize) && (fs->blocksize) <= 16 ? ((fs->blocksize) == 1 ? ({ void *__s = (data); *((__uint8_t *) __s) = (__uint8_t) 0; __s; }) : ({ void *__s = (data); union { unsigned int __ui; unsigned short int __usi; unsigned char __uc; } *__u = __s; __uint8_t __c = (__uint8_t) (0); switch ((unsigned int) (fs->blocksize)) { case 15: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 11: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 7: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 3: __u->__usi = (unsigned short int) __c * 0x0101; __u = __extension__ ((void *) __u + 2); __u->__uc = (unsigned char) __c; break; case 14: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 10: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 6: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 2: __u->__usi = (unsigned short int) __c * 0x0101; break; case 13: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 9: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 5: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 1: __u->__uc = (unsigned char) __c; break; case 16: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 12: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 8: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 4: __u->__ui = __c * 0x01010101; case 0: break; } __s; })) : (__builtin_constant_p (0) && (0) == '\0' ? ({ void *__s = (data); __builtin_memset (__s, '\0', fs->blocksize); __s; }) : memset (data, 0, fs->blocksize))));
        offset = _set_dirent(data, 0, fs->blocksize, 0,
                             2, ".", 2);
        offset = _set_dirent(data, offset, fs->blocksize, 0,
                             2, "..", 2);
        offset = _set_dirent(data, offset, fs->blocksize, 1,
                             11, "lost+found", 2);
        bh = ext2_bcreate(fs, block);
        memcpy(bh->data, data, fs->blocksize);
        bh->dirty = 1;
        if (!ext2_brelse(bh, 1))
                return 0;


        (__extension__ (__builtin_constant_p (sizeof(struct ext2_inode)) && (sizeof(struct ext2_inode)) <= 16 ? ((sizeof(struct ext2_inode)) == 1 ? ({ void *__s = (&inode); *((__uint8_t *) __s) = (__uint8_t) 0; __s; }) : ({ void *__s = (&inode); union { unsigned int __ui; unsigned short int __usi; unsigned char __uc; } *__u = __s; __uint8_t __c = (__uint8_t) (0); switch ((unsigned int) (sizeof(struct ext2_inode))) { case 15: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 11: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 7: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 3: __u->__usi = (unsigned short int) __c * 0x0101; __u = __extension__ ((void *) __u + 2); __u->__uc = (unsigned char) __c; break; case 14: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 10: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 6: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 2: __u->__usi = (unsigned short int) __c * 0x0101; break; case 13: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 9: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 5: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 1: __u->__uc = (unsigned char) __c; break; case 16: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 12: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 8: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 4: __u->__ui = __c * 0x01010101; case 0: break; } __s; })) : (__builtin_constant_p (0) && (0) == '\0' ? ({ void *__s = (&inode); __builtin_memset (__s, '\0', sizeof(struct ext2_inode)); __s; }) : memset (&inode, 0, sizeof(struct ext2_inode)))));
        inode.i_mode = (0040000 | 0755);
        inode.i_uid = 0;
        inode.i_size = (fs->blocksize);
        inode.i_atime = (time(((void *)0)));
        inode.i_ctime = (time(((void *)0)));
        inode.i_mtime = (time(((void *)0)));
        inode.i_dtime = 0;
        inode.i_gid = 0;
        inode.i_links_count = (3);
        inode.i_blocks = (fs->blocksize >> 9);
        inode.i_flags = 0;
        inode.i_block[0] = (block);

        if (!ext2_write_inode(fs, 2, &inode))
                return 0;
        fs->gd[0].bg_used_dirs_count = ((((fs->gd[0]).bg_used_dirs_count)) + 1);

        fs->metadirty |= (4 | 8);

        return 1;
}

static
int ext2_reserve_inodes(struct ext2_fs *fs)
{
        int i;

        for (i=1;i<12;i++)
                if (!ext2_set_inode_state(fs, i, 1, 1))
                        return 0;
        return 1;
}

static int ext2_mkfs_init_sb (struct ext2_super_block *sb, blk_t numblocks,
                              int numgroups, int first_block,
                              int log_block_size, blk_t blocks_per_group,
                              int inodes_per_group, int sparse_sb,
                              int reserved_block_percentage)
{

        if (!ped_assert (numgroups != 0, "numgroups != 0", "ext2_mkfs.c", 414, __PRETTY_FUNCTION__)) { return 0; };

        (__extension__ (__builtin_constant_p (1024) && (1024) <= 16 ? ((1024) == 1 ? ({ void *__s = (sb); *((__uint8_t *) __s) = (__uint8_t) 0; __s; }) : ({ void *__s = (sb); union { unsigned int __ui; unsigned short int __usi; unsigned char __uc; } *__u = __s; __uint8_t __c = (__uint8_t) (0); switch ((unsigned int) (1024)) { case 15: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 11: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 7: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 3: __u->__usi = (unsigned short int) __c * 0x0101; __u = __extension__ ((void *) __u + 2); __u->__uc = (unsigned char) __c; break; case 14: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 10: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 6: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 2: __u->__usi = (unsigned short int) __c * 0x0101; break; case 13: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 9: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 5: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 1: __u->__uc = (unsigned char) __c; break; case 16: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 12: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 8: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 4: __u->__ui = __c * 0x01010101; case 0: break; } __s; })) : (__builtin_constant_p (0) && (0) == '\0' ? ({ void *__s = (sb); __builtin_memset (__s, '\0', 1024); __s; }) : memset (sb, 0, 1024))));

        sb->s_inodes_count = (numgroups * inodes_per_group);
        sb->s_blocks_count = (numblocks);
        sb->s_r_blocks_count = (((u_int64_t)numblocks * reserved_block_percentage) / 100);





        sb->s_free_blocks_count = 0;
        sb->s_free_inodes_count = (numgroups * inodes_per_group);

        sb->s_first_data_block = (first_block);
        sb->s_log_block_size = (log_block_size - 10);
        sb->s_log_frag_size = sb->s_log_block_size;
        sb->s_blocks_per_group = (blocks_per_group);
        sb->s_frags_per_group = (blocks_per_group);
        sb->s_inodes_per_group = (inodes_per_group);
        sb->s_mtime = 0;
        sb->s_wtime = 0;
        sb->s_mnt_count = 0;
        sb->s_max_mnt_count = (30);
        sb->s_magic = (0xEF53);
        sb->s_state = (0x0001);
        sb->s_errors = (1);
        sb->s_minor_rev_level = 0;
        sb->s_lastcheck = 0;
        sb->s_checkinterval = 0;
        sb->s_creator_os = 0;
        sb->s_rev_level = (1);
        sb->s_def_resuid = 0;
        sb->s_def_resgid = 0;
        sb->s_first_ino = (11);
        sb->s_inode_size = (128);
        sb->s_block_group_nr = 0;
        sb->s_feature_compat = 0;
        sb->s_feature_incompat = 0;
        sb->s_feature_ro_compat = 0;
        if (sparse_sb)
                sb->s_feature_ro_compat
                        |= (0x0001);


        sb->s_feature_incompat
                |= (0x0002);

        uuid_generate(sb->s_uuid);
        (__extension__ (__builtin_constant_p (16) && (16) <= 16 ? ((16) == 1 ? ({ void *__s = (sb->s_volume_name); *((__uint8_t *) __s) = (__uint8_t) 0; __s; }) : ({ void *__s = (sb->s_volume_name); union { unsigned int __ui; unsigned short int __usi; unsigned char __uc; } *__u = __s; __uint8_t __c = (__uint8_t) (0); switch ((unsigned int) (16)) { case 15: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 11: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 7: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 3: __u->__usi = (unsigned short int) __c * 0x0101; __u = __extension__ ((void *) __u + 2); __u->__uc = (unsigned char) __c; break; case 14: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 10: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 6: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 2: __u->__usi = (unsigned short int) __c * 0x0101; break; case 13: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 9: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 5: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 1: __u->__uc = (unsigned char) __c; break; case 16: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 12: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 8: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 4: __u->__ui = __c * 0x01010101; case 0: break; } __s; })) : (__builtin_constant_p (0) && (0) == '\0' ? ({ void *__s = (sb->s_volume_name); __builtin_memset (__s, '\0', 16); __s; }) : memset (sb->s_volume_name, 0, 16))));
        (__extension__ (__builtin_constant_p (64) && (64) <= 16 ? ((64) == 1 ? ({ void *__s = (sb->s_last_mounted); *((__uint8_t *) __s) = (__uint8_t) 0; __s; }) : ({ void *__s = (sb->s_last_mounted); union { unsigned int __ui; unsigned short int __usi; unsigned char __uc; } *__u = __s; __uint8_t __c = (__uint8_t) (0); switch ((unsigned int) (64)) { case 15: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 11: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 7: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 3: __u->__usi = (unsigned short int) __c * 0x0101; __u = __extension__ ((void *) __u + 2); __u->__uc = (unsigned char) __c; break; case 14: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 10: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 6: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 2: __u->__usi = (unsigned short int) __c * 0x0101; break; case 13: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 9: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 5: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 1: __u-
>Fix:
	using -O2 or lower stops this.
>Release-Note:
>Audit-Trail:
>Unformatted:
 >__uc = (unsigned char) __c; break; case 16: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 12: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 8: __u->__ui = __c * 0x01010101; __u = __extension__ (( void *) __u + 4); case 4: __u->__ui = __c * 0x01010101; case 0: break; } __s; })) : (__builtin_constant_p (0) && (0) == '\0' ? ({ void *__s = (sb->s_last_mounted); __builtin_memset (__s, '\0', 64); __s; }) : memset (sb->s_last_mounted, 0, 64))));
         sb->s_algorithm_usage_bitmap = 0;
         sb->s_prealloc_blocks = 0;
         sb->s_prealloc_dir_blocks = 0;
         sb->s_padding1 = 0;
 
         return 1;
 }
 
 struct ext2_fs *ext2_mkfs(struct ext2_dev_handle *handle,
                           blk_t numblocks,
                           int log_block_size,
                           blk_t blocks_per_group,
                           int inodes_per_group,
                           int sparse_sb,
                           int reserved_block_percentage)
 {
         struct ext2_super_block sb;
         struct ext2_group_desc *gd;
         int numgroups;
         int first_block;
         int non_sparse_admin;
         int sparse_admin;
         int last_group_blocks;
         int last_group_admin;
 
         if (log_block_size == 0)
                 log_block_size = 12;
 
         handle->ops->set_blocksize(handle->cookie, log_block_size);
 
         if (numblocks == 0)
                 numblocks = handle->ops->get_size(handle->cookie);
 
         if (blocks_per_group == 0)
                 blocks_per_group = 8 << log_block_size;
 
         first_block = (log_block_size == 10) ? 1 : 0;
 
         numgroups = (((numblocks - first_block)+((blocks_per_group)-1))/(blocks_per_group));
 
         if (inodes_per_group == 0)
                 inodes_per_group = ped_round_up_to (
                         numblocks / numgroups / 2,
                         (1 << log_block_size) / sizeof(struct ext2_inode));
 
         if (sparse_sb == -1)
                 sparse_sb = 1;
 
         if (reserved_block_percentage == -1)
                 reserved_block_percentage = 5;
 
         last_group_blocks = (numblocks - first_block) % blocks_per_group;
         if (!last_group_blocks) last_group_blocks = blocks_per_group;
         non_sparse_admin = 2
                            + inodes_per_group * sizeof(struct ext2_inode)
                                 / (1 << log_block_size);
         sparse_admin = non_sparse_admin
                        + (((numgroups * sizeof(struct ext2_group_desc))+((1 << log_block_size)-1))/(1 << log_block_size));
 
         last_group_admin = is_group_sparse(sparse_sb, numgroups - 1)
                            ? sparse_admin : non_sparse_admin;
         if (last_group_admin >= last_group_blocks) {
                 numgroups--;
                 numblocks -= last_group_blocks;
         }
 
         gd = ped_malloc(numgroups * sizeof(struct ext2_group_desc)
                         + (1 << log_block_size));
         if (!gd)
                 return ((void *)0);
 
         if (!ext2_mkfs_init_sb(&sb, numblocks, numgroups, first_block,
                                log_block_size, blocks_per_group,
                                inodes_per_group, sparse_sb,
                                reserved_block_percentage)) {
                 ped_free(gd);
                 return ((void *)0);
         }
         if (!ext2_mkfs_write_meta(handle, &sb, gd)) {
                 ped_free(gd);
                 return ((void *)0);
         }
         if (!ext2_mkfs_write_main(handle, &sb, gd)) {
                 ped_free(gd);
                 return ((void *)0);
         }
 
         ped_free(gd);
 
         {
                 struct ext2_fs *fs;
 
                 fs = ext2_open(handle, 0);
                 if (!ext2_reserve_inodes(fs)) goto error_close_fs;
                 if (!ext2_mkfs_create_root_inode(fs)) goto error_close_fs;
                 if (!ext2_mkfs_create_lost_and_found_inode(fs))
                         goto error_close_fs;
                 if (!ext2_sync(fs)) goto error_close_fs;
                 return fs;
 
         error_close_fs:
                 ext2_close(fs);
                 return ((void *)0);
         }
 }



More information about the Gcc-bugs mailing list