int repo_open(repo* rep, const char* mountpt, const char* repo) { int err = 0; rep->mountpt = strdup(mountpt); if (!rep->mountpt) { err = -ENOMEM; goto err; } rep->repo = strdup(repo); if (!rep->repo) { err = -ENOMEM; goto err; } stat_t stbuf; err = gen_stat(rep->mountpt, &stbuf); if (err) { goto err; } err = gen_stat(rep->repo, &stbuf); if (err) { goto err; } err = setmaxid(rep); if (err) { goto err; } return 0; err: repo_destroy(rep); return err; }
int main(int argc, char** argv) { printf("-- Generated by utildgen.c from system includes\n"); if (argc > 1 && strcmp(argv[1], "curl") == 0) { printf("private package Util.Http.Clients.Curl.Constants is\n"); #ifdef HAVE_CURL printf("\n"); printf(" CURLOPT_URL : constant Curl_Option := %d;\n", CURLOPT_URL); printf(" CURLOPT_READFUNCTION : constant Curl_Option := %d;\n", CURLOPT_READFUNCTION); printf(" CURLOPT_WRITEUNCTION : constant Curl_Option := %d;\n", CURLOPT_WRITEFUNCTION); printf(" CURLOPT_HTTPHEADER : constant Curl_Option := %d;\n", CURLOPT_HTTPHEADER); printf(" CURLOPT_INTERFACE : constant Curl_Option := %d;\n", CURLOPT_INTERFACE); printf(" CURLOPT_USERPWD : constant Curl_Option := %d;\n", CURLOPT_USERPWD); printf(" CURLOPT_HTTPAUTH : constant Curl_Option := %d;\n", CURLOPT_HTTPAUTH); printf(" CURLOPT_MAXFILESIZE : constant Curl_Option := %d;\n", CURLOPT_MAXFILESIZE); printf(" CURLOPT_WRITEDATA : constant Curl_Option := %d;\n", CURLOPT_WRITEDATA); printf(" CURLOPT_HEADER : constant Curl_Option := %d;\n", CURLOPT_HEADER); printf(" CURLOPT_POSTFIELDS : constant Curl_Option := %d;\n", CURLOPT_POSTFIELDS); printf(" CURLOPT_POSTFIELDSIZE : constant Curl_Option := %d;\n", CURLOPT_POSTFIELDSIZE); printf("\n"); printf(" CURLINFO_RESPONSE_CODE : constant CURL_Info := %d;\n", CURLINFO_RESPONSE_CODE); printf("\n"); #endif printf("end Util.Http.Clients.Curl.Constants;\n"); } else if (argc > 1 && strcmp(argv[1], "types") == 0) { struct timespec tv; #if !defined(_WIN32) && !defined(_MIPS_ARCH) struct stat st; #else struct stat64 st; #endif printf("with Interfaces.C;\n"); printf("package Util.Systems.Types is\n"); printf("\n"); gen_type("dev_t", UNSIGNED, sizeof(st.st_dev)); gen_type("ino_t", UNSIGNED, sizeof(st.st_ino)); gen_type("off_t", SIGNED, sizeof(st.st_size)); #ifndef _WIN32 gen_type("blksize_t", SIGNED, sizeof(blksize_t)); gen_type("blkcnt_t", SIGNED, sizeof(blkcnt_t)); gen_type("uid_t", UNSIGNED, sizeof(uid_t)); gen_type("gid_t", UNSIGNED, sizeof(gid_t)); gen_type("nlink_t", UNSIGNED, sizeof(nlink_t)); #else gen_type("uid_t", UNSIGNED, sizeof(st.st_uid)); gen_type("gid_t", UNSIGNED, sizeof(st.st_gid)); gen_type("nlink_t", UNSIGNED, sizeof(st.st_nlink)); #endif gen_type("mode_t", UNSIGNED, sizeof(mode_t)); printf("\n"); printf(" S_IFMT : constant mode_t := 8#%08o#;\n", S_IFMT); printf(" S_IFDIR : constant mode_t := 8#%08o#;\n", S_IFDIR); printf(" S_IFCHR : constant mode_t := 8#%08o#;\n", S_IFCHR); printf(" S_IFBLK : constant mode_t := 8#%08o#;\n", S_IFBLK); printf(" S_IFREG : constant mode_t := 8#%08o#;\n", S_IFREG); printf(" S_IFIFO : constant mode_t := 8#%08o#;\n", S_IFIFO); printf(" S_IFLNK : constant mode_t := 8#%08o#;\n", S_IFLNK); printf(" S_IFSOCK : constant mode_t := 8#%08o#;\n", S_IFSOCK); printf(" S_ISUID : constant mode_t := 8#%08o#;\n", S_ISUID); printf(" S_ISGID : constant mode_t := 8#%08o#;\n", S_ISGID); printf(" S_IREAD : constant mode_t := 8#%08o#;\n", S_IREAD); printf(" S_IWRITE : constant mode_t := 8#%08o#;\n", S_IWRITE); printf(" S_IEXEC : constant mode_t := 8#%08o#;\n", S_IEXEC); printf("\n"); #ifndef _WIN32 printf(" subtype Time_Type is %s;\n", get_type(UNSIGNED, sizeof(tv.tv_sec))); printf("\n"); printf(" type Timespec is record\n"); printf(" tv_sec : Time_Type;\n"); printf(" tv_nsec : %s;\n", get_type(SIGNED, sizeof(tv.tv_nsec))); printf(" end record;\n"); #else printf(" subtype Time_Type is %s;\n", get_type(UNSIGNED, sizeof(st.st_mtime))); printf("\n"); printf(" type Timespec is record\n"); printf(" tv_sec : Time_Type;\n"); printf(" end record;\n"); #endif printf(" pragma Convention (C_Pass_By_Copy, Timespec);\n"); printf("\n"); gen_stat(); printf("\nend Util.Systems.Types;\n"); } else { printf("with Interfaces.C;\n"); printf("package Util.Systems.Constants is\n"); printf("\n"); printf(" pragma Pure;\n"); printf("\n -- Flags used when opening a file with open/creat.\n"); printf(" O_RDONLY : constant Interfaces.C.int := 8#%06o#;\n", O_RDONLY); printf(" O_WRONLY : constant Interfaces.C.int := 8#%06o#;\n", O_WRONLY); printf(" O_RDWR : constant Interfaces.C.int := 8#%06o#;\n", O_RDWR); printf(" O_CREAT : constant Interfaces.C.int := 8#%06o#;\n", O_CREAT); printf(" O_EXCL : constant Interfaces.C.int := 8#%06o#;\n", O_EXCL); printf(" O_TRUNC : constant Interfaces.C.int := 8#%06o#;\n", O_TRUNC); printf(" O_APPEND : constant Interfaces.C.int := 8#%06o#;\n", O_APPEND); #ifdef O_NONBLOCK printf(" O_NONBLOCK : constant Interfaces.C.int := 8#%06o#;\n", O_NONBLOCK); #endif printf("\n"); #ifdef F_SETFL printf(" -- Flags used by fcntl\n"); printf(" F_SETFL : constant Interfaces.C.int := %d;\n", F_SETFL); printf(" F_GETFL : constant Interfaces.C.int := %d;\n", F_GETFL); printf(" FD_CLOEXEC : constant Interfaces.C.int := %d;\n", FD_CLOEXEC); #endif #ifdef HAVE_DLFCN_H printf("\n"); printf(" -- Flags used by dlopen\n"); printf(" RTLD_LAZY : constant Interfaces.C.int := 8#%06o#;\n", RTLD_LAZY); printf(" RTLD_NOW : constant Interfaces.C.int := 8#%06o#;\n", RTLD_NOW); printf(" RTLD_NOLOAD : constant Interfaces.C.int := 8#%06o#;\n", RTLD_NOLOAD); printf(" RTLD_DEEPBIND : constant Interfaces.C.int := 8#%06o#;\n", RTLD_DEEPBIND); printf(" RTLD_GLOBAL : constant Interfaces.C.int := 8#%06o#;\n", RTLD_GLOBAL); printf(" RTLD_LOCAL : constant Interfaces.C.int := 8#%06o#;\n", RTLD_LOCAL); printf(" RTLD_NODELETE : constant Interfaces.C.int := 8#%06o#;\n", RTLD_NODELETE); #endif printf("\n"); #ifdef HAVE_DLOPEN printf(" DLL_OPTIONS : constant String := \"-ldl\";\n"); #else printf(" DLL_OPTIONS : constant String := \"\";\n"); #endif printf("\n"); printf("end Util.Systems.Constants;\n"); } return 0; }