1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/toolkit/crashreporter/google-breakpad/src/common/android/include/sys/procfs.h Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,113 @@ 1.4 +// Copyright (c) 2012, Google Inc. 1.5 +// All rights reserved. 1.6 +// 1.7 +// Redistribution and use in source and binary forms, with or without 1.8 +// modification, are permitted provided that the following conditions are 1.9 +// met: 1.10 +// 1.11 +// * Redistributions of source code must retain the above copyright 1.12 +// notice, this list of conditions and the following disclaimer. 1.13 +// * Redistributions in binary form must reproduce the above 1.14 +// copyright notice, this list of conditions and the following disclaimer 1.15 +// in the documentation and/or other materials provided with the 1.16 +// distribution. 1.17 +// * Neither the name of Google Inc. nor the names of its 1.18 +// contributors may be used to endorse or promote products derived from 1.19 +// this software without specific prior written permission. 1.20 +// 1.21 +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 1.22 +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 1.23 +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 1.24 +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 1.25 +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 1.26 +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 1.27 +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 1.28 +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 1.29 +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 1.30 +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 1.31 +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 1.32 + 1.33 +#ifndef GOOGLE_BREAKPAD_COMMON_ANDROID_SYS_PROCFS_H 1.34 +#define GOOGLE_BREAKPAD_COMMON_ANDROID_SYS_PROCFS_H 1.35 + 1.36 +#ifdef __BIONIC_HAVE_SYS_PROCFS_H 1.37 + 1.38 +#include_next <sys/procfs.h> 1.39 + 1.40 +#else 1.41 + 1.42 +#include <sys/cdefs.h> 1.43 +#include <sys/user.h> 1.44 +#include <unistd.h> 1.45 + 1.46 +#ifdef __cplusplus 1.47 +extern "C" { 1.48 +#endif // __cplusplus 1.49 + 1.50 +#ifdef __x86_64__ 1.51 +typedef unsigned long long elf_greg_t; 1.52 +#else 1.53 +typedef unsigned long elf_greg_t; 1.54 +#endif 1.55 + 1.56 +#ifdef __arm__ 1.57 +#define ELF_NGREG (sizeof(struct user_regs) / sizeof(elf_greg_t)) 1.58 +#else 1.59 +#define ELF_NGREG (sizeof(struct user_regs_struct) / sizeof(elf_greg_t)) 1.60 +#endif 1.61 + 1.62 +typedef elf_greg_t elf_gregset_t[ELF_NGREG]; 1.63 + 1.64 +struct elf_siginfo { 1.65 + int si_signo; 1.66 + int si_code; 1.67 + int si_errno; 1.68 +}; 1.69 + 1.70 +struct elf_prstatus { 1.71 + struct elf_siginfo pr_info; 1.72 + short pr_cursig; 1.73 + unsigned long pr_sigpend; 1.74 + unsigned long pr_sighold; 1.75 + pid_t pr_pid; 1.76 + pid_t pr_ppid; 1.77 + pid_t pr_pgrp; 1.78 + pid_t pd_sid; 1.79 + struct timeval pr_utime; 1.80 + struct timeval pr_stime; 1.81 + struct timeval pr_cutime; 1.82 + struct timeval pr_cstime; 1.83 + elf_gregset_t pr_reg; 1.84 + int pr_fpvalid; 1.85 +}; 1.86 + 1.87 +#define ELF_PRARGSZ 80 1.88 + 1.89 +struct elf_prpsinfo { 1.90 + char pr_state; 1.91 + char pr_sname; 1.92 + char pr_zomb; 1.93 + char pr_nice; 1.94 + unsigned long pr_flags; 1.95 +#ifdef __x86_64__ 1.96 + unsigned int pr_uid; 1.97 + unsigned int pr_gid; 1.98 +#else 1.99 + unsigned short pr_uid; 1.100 + unsigned short pr_gid; 1.101 +#endif 1.102 + int pr_pid; 1.103 + int pr_ppid; 1.104 + int pr_pgrp; 1.105 + int pr_sid; 1.106 + char pr_fname[16]; 1.107 + char pr_psargs[ELF_PRARGSZ]; 1.108 +}; 1.109 + 1.110 +#ifdef __cplusplus 1.111 +} // extern "C" 1.112 +#endif // __cplusplus 1.113 + 1.114 +#endif // __BIONIC_HAVE_SYS_PROCFS_H 1.115 + 1.116 +#endif // GOOGLE_BREAKPAD_COMMON_ANDROID_SYS_PROCFS_H