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