165b3819bcdc2ecbfec9e718d121af9f5fe614069Ben Cheng/*
265b3819bcdc2ecbfec9e718d121af9f5fe614069Ben Cheng * Copyright 2013, The Android Open Source Project
365b3819bcdc2ecbfec9e718d121af9f5fe614069Ben Cheng *
465b3819bcdc2ecbfec9e718d121af9f5fe614069Ben Cheng * Licensed under the Apache License, Version 2.0 (the "License");
565b3819bcdc2ecbfec9e718d121af9f5fe614069Ben Cheng * you may not use this file except in compliance with the License.
665b3819bcdc2ecbfec9e718d121af9f5fe614069Ben Cheng * You may obtain a copy of the License at
765b3819bcdc2ecbfec9e718d121af9f5fe614069Ben Cheng *
865b3819bcdc2ecbfec9e718d121af9f5fe614069Ben Cheng *      http://www.apache.org/licenses/LICENSE-2.0
965b3819bcdc2ecbfec9e718d121af9f5fe614069Ben Cheng *
1065b3819bcdc2ecbfec9e718d121af9f5fe614069Ben Cheng * Unless required by applicable law or agreed to in writing, software
1165b3819bcdc2ecbfec9e718d121af9f5fe614069Ben Cheng * distributed under the License is distributed on an "AS IS" BASIS,
1265b3819bcdc2ecbfec9e718d121af9f5fe614069Ben Cheng * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1365b3819bcdc2ecbfec9e718d121af9f5fe614069Ben Cheng * See the License for the specific language governing permissions and
1465b3819bcdc2ecbfec9e718d121af9f5fe614069Ben Cheng * limitations under the License.
1565b3819bcdc2ecbfec9e718d121af9f5fe614069Ben Cheng */
1665b3819bcdc2ecbfec9e718d121af9f5fe614069Ben Cheng
1765b3819bcdc2ecbfec9e718d121af9f5fe614069Ben Cheng#ifndef ELFUTILS_ERROR_H
1865b3819bcdc2ecbfec9e718d121af9f5fe614069Ben Cheng#define ELFUTILS_ERROR_H
1965b3819bcdc2ecbfec9e718d121af9f5fe614069Ben Cheng
2065b3819bcdc2ecbfec9e718d121af9f5fe614069Ben Cheng#include <stdarg.h>
2165b3819bcdc2ecbfec9e718d121af9f5fe614069Ben Cheng#include <stdio.h>
2265b3819bcdc2ecbfec9e718d121af9f5fe614069Ben Cheng#include <stdlib.h>
2365b3819bcdc2ecbfec9e718d121af9f5fe614069Ben Cheng#include <errno.h>
2465b3819bcdc2ecbfec9e718d121af9f5fe614069Ben Cheng
2565b3819bcdc2ecbfec9e718d121af9f5fe614069Ben Chengstatic inline void __attribute__((noreturn))
2665b3819bcdc2ecbfec9e718d121af9f5fe614069Ben Chengerror(int status, int errnum, const char *fmt, ...)
2765b3819bcdc2ecbfec9e718d121af9f5fe614069Ben Cheng{
2865b3819bcdc2ecbfec9e718d121af9f5fe614069Ben Cheng        va_list lst;
2965b3819bcdc2ecbfec9e718d121af9f5fe614069Ben Cheng        va_start(lst, fmt);
3065b3819bcdc2ecbfec9e718d121af9f5fe614069Ben Cheng        vfprintf(stderr, fmt, lst);
3165b3819bcdc2ecbfec9e718d121af9f5fe614069Ben Cheng        fprintf(stderr, "error %d: %s\n", errnum, strerror(errno));
3265b3819bcdc2ecbfec9e718d121af9f5fe614069Ben Cheng        va_end(lst);
3365b3819bcdc2ecbfec9e718d121af9f5fe614069Ben Cheng        exit(status);
3465b3819bcdc2ecbfec9e718d121af9f5fe614069Ben Cheng}
3565b3819bcdc2ecbfec9e718d121af9f5fe614069Ben Cheng
3665b3819bcdc2ecbfec9e718d121af9f5fe614069Ben Cheng#endif /* ELFUTILS_ERROR_H */
37