00001 #ifndef H_RPMNS
00002 #define H_RPMNS
00003
00011
00012
00013 extern int _rpmns_debug;
00014
00015
00016
00017 extern const char *_rpmns_N_at_A;
00018
00019 typedef struct rpmns_s * rpmns;
00020
00024 typedef enum nsType_e {
00025 RPMNS_TYPE_UNKNOWN = 0,
00026 RPMNS_TYPE_STRING = (1 << 0),
00027 RPMNS_TYPE_PATH = (1 << 1),
00028 RPMNS_TYPE_DSO = (1 << 2),
00029 RPMNS_TYPE_FUNCTION = (1 << 3),
00030 RPMNS_TYPE_ARCH = (1 << 4),
00031 RPMNS_TYPE_VERSION = (1 << 5),
00032 RPMNS_TYPE_COMPOUND = (1 << 6),
00033
00034 RPMNS_TYPE_NAMESPACE= (1 << 8),
00035 RPMNS_TYPE_RPMLIB = (1 << 9),
00036 RPMNS_TYPE_CPUINFO = (1 << 10),
00037 RPMNS_TYPE_GETCONF = (1 << 11),
00038 RPMNS_TYPE_UNAME = (1 << 12),
00039 RPMNS_TYPE_SONAME = (1 << 13),
00040 RPMNS_TYPE_ACCESS = (1 << 14),
00041 RPMNS_TYPE_TAG = (1 << 15),
00042 RPMNS_TYPE_USER = (1 << 16),
00043 RPMNS_TYPE_GROUP = (1 << 17),
00044 RPMNS_TYPE_MOUNTED = (1 << 18),
00045 RPMNS_TYPE_DISKSPACE= (1 << 19),
00046 RPMNS_TYPE_DIGEST = (1 << 20),
00047 RPMNS_TYPE_GNUPG = (1 << 21),
00048 RPMNS_TYPE_MACRO = (1 << 22),
00049 RPMNS_TYPE_ENVVAR = (1 << 23),
00050 RPMNS_TYPE_RUNNING = (1 << 24),
00051 } nsType;
00052
00053 #if defined(_RPMNS_INTERNAL)
00054
00057 struct rpmns_s {
00058 const char * str;
00059 nsType Type;
00060
00061 const char * NS;
00062
00063 const char * N;
00064
00065 const char * A;
00066 evrFlags Flags;
00067 };
00068 #endif
00069
00070 #ifdef __cplusplus
00071 extern "C" {
00072 #endif
00073
00079 nsType rpmnsArch(const char * str)
00080 ;
00081
00087 nsType rpmnsProbe(const char * str)
00088 ;
00089
00095 nsType rpmnsClassify(const char * str)
00096 ;
00097
00104 int rpmnsParse(const char * str, rpmns ns)
00105
00106 ;
00107
00108 #ifdef __cplusplus
00109 }
00110 #endif
00111
00112 #endif