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