This file is indexed.

/usr/include/python2.7/mx/mxUID.h is in python-egenix-mx-base-dev 3.2.9-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#ifndef MXUID_H
#define MXUID_H
/* 
  mxUID -- A UID datatype.

  Copyright (c) 2000, Marc-Andre Lemburg; mailto:mal@lemburg.com
  Copyright (c) 2000-2015, eGenix.com Software GmbH; mailto:info@egenix.com
  See the documentation for further copyright information or contact
  the author (mailto:mal@lemburg.com).
  
*/

/* The extension's name; must be the same as the init function's suffix */
#define MXUID_MODULE "mxUID"

/* Name of the package or module that provides the extensions C API.
   If the extension is used inside a package, provide the complete
   import path. */
#define MXUID_API_MODULE "mx.UID"

/* --- No servicable parts below this line ----------------------*/

/* Include generic mx extension header file */
#include "mxh.h"

#ifdef MX_BUILDING_MXUID
# define MXUID_EXTERNALIZE MX_EXPORT
#else
# define MXUID_EXTERNALIZE MX_IMPORT
#endif

#ifdef __cplusplus
extern "C" {
#endif

/* --- C API ----------------------------------------------------*/

/* C API for usage by other Python modules */
typedef struct {

    /* Build a new UID string for object with address id.

       code is optionally included in UID if given. It may be NULL.
       timestamp should be a double indicating Unix ticks, or 0 to have
       the API use the current time.

       The output buffer uid must have room for at least 512
       bytes. uid_len is set to the uid data length. It must be preset to
       the buffer's size.

       Returns the Python string object on success, NULL on error.

    */

    PyObject *(*UID)(void *obj,
		     char *code,
		     double timestamp);
	 
    /* Extracts the ticks timestamp from an UID string uid */

    double (*timestamp)(unsigned char *uid);
   

} mxUIDModule_APIObject;

#ifndef MX_BUILDING_MXUID

/* Interfacestructure to C API for other modules.
   Call mxUID_ImportModuleAPI() to initialize this
   structure. After that usage is simple:

   PyObject *v;
	
   v = mxUID.UID("Marc");
   if (!v)
       goto onError;
   ...

*/

static 
mxUIDModule_APIObject mxUID;

/* You *must* call this before using any of the functions in
   mxUID and check its outcome; otherwise all accesses will
   result in a segfault. Returns 0 on success. */

#ifndef DPRINTF
# define DPRINTF if (0) printf
#endif

static
int mxUID_ImportModuleAndAPI(void)
{
    PyObject *mod = 0, *v = 0;
    void *api;
    
    DPRINTF("Importing the %s C API...\n",MXUID_API_MODULE);
    mod = PyImport_ImportModule(MXUID_API_MODULE);
    if (mod == NULL)
	goto onError;
    DPRINTF(" module found\n");
    v = PyObject_GetAttrString(mod,MXUID_MODULE"API");
    if (v == NULL)
	goto onError;
    Py_CLEAR(mod);
    DPRINTF(" API object found\n");
    api = PyCObject_AsVoidPtr(v);
    if (api == NULL)
	goto onError;
    Py_CLEAR(v);
    memcpy(&mxUID,api,sizeof(mxUID));
    DPRINTF(" API object initialized.\n");
    return 0;
    
 onError:
    DPRINTF(" not found.\n");
    Py_XDECREF(mod);
    Py_XDECREF(v);
    return -1;
}

#endif

/* EOF */
#ifdef __cplusplus
}
#endif
#endif