11f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turner/*
21f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turner**
31f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turner** Copyright 2010, The Android Open Source Project
41f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turner**
51f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turner** Licensed under the Apache License, Version 2.0 (the "License");
61f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turner** you may not use this file except in compliance with the License.
71f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turner** You may obtain a copy of the License at
81f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turner**
91f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turner**     http://www.apache.org/licenses/LICENSE-2.0
101f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turner**
111f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turner** Unless required by applicable law or agreed to in writing, software
121f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turner** distributed under the License is distributed on an "AS IS" BASIS,
131f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turner** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
141f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turner** See the License for the specific language governing permissions and
151f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turner** limitations under the License.
161f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turner*/
171f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turner#ifndef RUN_AS_PACKAGE_H
181f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turner#define RUN_AS_PACKAGE_H
191f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turner
201f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turner#include <limits.h>
211f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turner#include <sys/types.h>
221f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turner
231f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turnertypedef enum {
241f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turner    PACKAGE_IS_DEBUGGABLE = 0,
251f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turner    PACKAGE_IS_NOT_DEBUGGABLE,
261f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turner    PACKAGE_IS_UNKNOWN,
271f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turner} PackageStatus;
281f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turner
291f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turnertypedef struct {
301f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turner    uid_t  uid;
311f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turner    char   isDebuggable;
321f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turner    char   dataDir[PATH_MAX];
331f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turner} PackageInfo;
341f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turner
351f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turner/* see documentation in package.c for these functiosn */
361f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turner
371f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turnerextern int  get_package_info(const char* packageName, PackageInfo*  info);
381f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turner
391f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turnerextern int  check_data_path(const char* dataDir, uid_t uid);
401f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turner
411f4d95296acf34a93128332441782a80c10845b4David 'Digit' Turner#endif /* RUN_AS_PACKAGE_H */
42