]> git.proxmox.com Git - mirror_edk2.git/blobdiff - AppPkg/Applications/Python/Python-2.7.2/Include/datetime.h
edk2: Remove AppPkg, StdLib, StdLibPrivateInternalFiles
[mirror_edk2.git] / AppPkg / Applications / Python / Python-2.7.2 / Include / datetime.h
diff --git a/AppPkg/Applications/Python/Python-2.7.2/Include/datetime.h b/AppPkg/Applications/Python/Python-2.7.2/Include/datetime.h
deleted file mode 100644 (file)
index afd8141..0000000
+++ /dev/null
@@ -1,239 +0,0 @@
-/*  datetime.h\r
- */\r
-\r
-#ifndef DATETIME_H\r
-#define DATETIME_H\r
-#ifdef __cplusplus\r
-extern "C" {\r
-#endif\r
-\r
-/* Fields are packed into successive bytes, each viewed as unsigned and\r
- * big-endian, unless otherwise noted:\r
- *\r
- * byte offset\r
- *  0           year     2 bytes, 1-9999\r
- *  2           month    1 byte, 1-12\r
- *  3           day      1 byte, 1-31\r
- *  4           hour     1 byte, 0-23\r
- *  5           minute   1 byte, 0-59\r
- *  6           second   1 byte, 0-59\r
- *  7           usecond  3 bytes, 0-999999\r
- * 10\r
- */\r
-\r
-/* # of bytes for year, month, and day. */\r
-#define _PyDateTime_DATE_DATASIZE 4\r
-\r
-/* # of bytes for hour, minute, second, and usecond. */\r
-#define _PyDateTime_TIME_DATASIZE 6\r
-\r
-/* # of bytes for year, month, day, hour, minute, second, and usecond. */\r
-#define _PyDateTime_DATETIME_DATASIZE 10\r
-\r
-\r
-typedef struct\r
-{\r
-    PyObject_HEAD\r
-    long hashcode;              /* -1 when unknown */\r
-    int days;                   /* -MAX_DELTA_DAYS <= days <= MAX_DELTA_DAYS */\r
-    int seconds;                /* 0 <= seconds < 24*3600 is invariant */\r
-    int microseconds;           /* 0 <= microseconds < 1000000 is invariant */\r
-} PyDateTime_Delta;\r
-\r
-typedef struct\r
-{\r
-    PyObject_HEAD               /* a pure abstract base clase */\r
-} PyDateTime_TZInfo;\r
-\r
-\r
-/* The datetime and time types have hashcodes, and an optional tzinfo member,\r
- * present if and only if hastzinfo is true.\r
- */\r
-#define _PyTZINFO_HEAD          \\r
-    PyObject_HEAD               \\r
-    long hashcode;              \\r
-    char hastzinfo;             /* boolean flag */\r
-\r
-/* No _PyDateTime_BaseTZInfo is allocated; it's just to have something\r
- * convenient to cast to, when getting at the hastzinfo member of objects\r
- * starting with _PyTZINFO_HEAD.\r
- */\r
-typedef struct\r
-{\r
-    _PyTZINFO_HEAD\r
-} _PyDateTime_BaseTZInfo;\r
-\r
-/* All time objects are of PyDateTime_TimeType, but that can be allocated\r
- * in two ways, with or without a tzinfo member.  Without is the same as\r
- * tzinfo == None, but consumes less memory.  _PyDateTime_BaseTime is an\r
- * internal struct used to allocate the right amount of space for the\r
- * "without" case.\r
- */\r
-#define _PyDateTime_TIMEHEAD    \\r
-    _PyTZINFO_HEAD              \\r
-    unsigned char data[_PyDateTime_TIME_DATASIZE];\r
-\r
-typedef struct\r
-{\r
-    _PyDateTime_TIMEHEAD\r
-} _PyDateTime_BaseTime;         /* hastzinfo false */\r
-\r
-typedef struct\r
-{\r
-    _PyDateTime_TIMEHEAD\r
-    PyObject *tzinfo;\r
-} PyDateTime_Time;              /* hastzinfo true */\r
-\r
-\r
-/* All datetime objects are of PyDateTime_DateTimeType, but that can be\r
- * allocated in two ways too, just like for time objects above.  In addition,\r
- * the plain date type is a base class for datetime, so it must also have\r
- * a hastzinfo member (although it's unused there).\r
- */\r
-typedef struct\r
-{\r
-    _PyTZINFO_HEAD\r
-    unsigned char data[_PyDateTime_DATE_DATASIZE];\r
-} PyDateTime_Date;\r
-\r
-#define _PyDateTime_DATETIMEHEAD        \\r
-    _PyTZINFO_HEAD                      \\r
-    unsigned char data[_PyDateTime_DATETIME_DATASIZE];\r
-\r
-typedef struct\r
-{\r
-    _PyDateTime_DATETIMEHEAD\r
-} _PyDateTime_BaseDateTime;     /* hastzinfo false */\r
-\r
-typedef struct\r
-{\r
-    _PyDateTime_DATETIMEHEAD\r
-    PyObject *tzinfo;\r
-} PyDateTime_DateTime;          /* hastzinfo true */\r
-\r
-\r
-/* Apply for date and datetime instances. */\r
-#define PyDateTime_GET_YEAR(o)     ((((PyDateTime_Date*)o)->data[0] << 8) | \\r
-                     ((PyDateTime_Date*)o)->data[1])\r
-#define PyDateTime_GET_MONTH(o)    (((PyDateTime_Date*)o)->data[2])\r
-#define PyDateTime_GET_DAY(o)      (((PyDateTime_Date*)o)->data[3])\r
-\r
-#define PyDateTime_DATE_GET_HOUR(o)        (((PyDateTime_DateTime*)o)->data[4])\r
-#define PyDateTime_DATE_GET_MINUTE(o)      (((PyDateTime_DateTime*)o)->data[5])\r
-#define PyDateTime_DATE_GET_SECOND(o)      (((PyDateTime_DateTime*)o)->data[6])\r
-#define PyDateTime_DATE_GET_MICROSECOND(o)              \\r
-    ((((PyDateTime_DateTime*)o)->data[7] << 16) |       \\r
-     (((PyDateTime_DateTime*)o)->data[8] << 8)  |       \\r
-      ((PyDateTime_DateTime*)o)->data[9])\r
-\r
-/* Apply for time instances. */\r
-#define PyDateTime_TIME_GET_HOUR(o)        (((PyDateTime_Time*)o)->data[0])\r
-#define PyDateTime_TIME_GET_MINUTE(o)      (((PyDateTime_Time*)o)->data[1])\r
-#define PyDateTime_TIME_GET_SECOND(o)      (((PyDateTime_Time*)o)->data[2])\r
-#define PyDateTime_TIME_GET_MICROSECOND(o)              \\r
-    ((((PyDateTime_Time*)o)->data[3] << 16) |           \\r
-     (((PyDateTime_Time*)o)->data[4] << 8)  |           \\r
-      ((PyDateTime_Time*)o)->data[5])\r
-\r
-\r
-/* Define structure for C API. */\r
-typedef struct {\r
-    /* type objects */\r
-    PyTypeObject *DateType;\r
-    PyTypeObject *DateTimeType;\r
-    PyTypeObject *TimeType;\r
-    PyTypeObject *DeltaType;\r
-    PyTypeObject *TZInfoType;\r
-\r
-    /* constructors */\r
-    PyObject *(*Date_FromDate)(int, int, int, PyTypeObject*);\r
-    PyObject *(*DateTime_FromDateAndTime)(int, int, int, int, int, int, int,\r
-        PyObject*, PyTypeObject*);\r
-    PyObject *(*Time_FromTime)(int, int, int, int, PyObject*, PyTypeObject*);\r
-    PyObject *(*Delta_FromDelta)(int, int, int, int, PyTypeObject*);\r
-\r
-    /* constructors for the DB API */\r
-    PyObject *(*DateTime_FromTimestamp)(PyObject*, PyObject*, PyObject*);\r
-    PyObject *(*Date_FromTimestamp)(PyObject*, PyObject*);\r
-\r
-} PyDateTime_CAPI;\r
-\r
-#define PyDateTime_CAPSULE_NAME "datetime.datetime_CAPI"\r
-\r
-\r
-/* "magic" constant used to partially protect against developer mistakes. */\r
-#define DATETIME_API_MAGIC 0x414548d5\r
-\r
-#ifdef Py_BUILD_CORE\r
-\r
-/* Macros for type checking when building the Python core. */\r
-#define PyDate_Check(op) PyObject_TypeCheck(op, &PyDateTime_DateType)\r
-#define PyDate_CheckExact(op) (Py_TYPE(op) == &PyDateTime_DateType)\r
-\r
-#define PyDateTime_Check(op) PyObject_TypeCheck(op, &PyDateTime_DateTimeType)\r
-#define PyDateTime_CheckExact(op) (Py_TYPE(op) == &PyDateTime_DateTimeType)\r
-\r
-#define PyTime_Check(op) PyObject_TypeCheck(op, &PyDateTime_TimeType)\r
-#define PyTime_CheckExact(op) (Py_TYPE(op) == &PyDateTime_TimeType)\r
-\r
-#define PyDelta_Check(op) PyObject_TypeCheck(op, &PyDateTime_DeltaType)\r
-#define PyDelta_CheckExact(op) (Py_TYPE(op) == &PyDateTime_DeltaType)\r
-\r
-#define PyTZInfo_Check(op) PyObject_TypeCheck(op, &PyDateTime_TZInfoType)\r
-#define PyTZInfo_CheckExact(op) (Py_TYPE(op) == &PyDateTime_TZInfoType)\r
-\r
-#else\r
-\r
-/* Define global variable for the C API and a macro for setting it. */\r
-static PyDateTime_CAPI *PyDateTimeAPI = NULL;\r
-\r
-#define PyDateTime_IMPORT \\r
-    PyDateTimeAPI = (PyDateTime_CAPI *)PyCapsule_Import(PyDateTime_CAPSULE_NAME, 0)\r
-\r
-/* Macros for type checking when not building the Python core. */\r
-#define PyDate_Check(op) PyObject_TypeCheck(op, PyDateTimeAPI->DateType)\r
-#define PyDate_CheckExact(op) (Py_TYPE(op) == PyDateTimeAPI->DateType)\r
-\r
-#define PyDateTime_Check(op) PyObject_TypeCheck(op, PyDateTimeAPI->DateTimeType)\r
-#define PyDateTime_CheckExact(op) (Py_TYPE(op) == PyDateTimeAPI->DateTimeType)\r
-\r
-#define PyTime_Check(op) PyObject_TypeCheck(op, PyDateTimeAPI->TimeType)\r
-#define PyTime_CheckExact(op) (Py_TYPE(op) == PyDateTimeAPI->TimeType)\r
-\r
-#define PyDelta_Check(op) PyObject_TypeCheck(op, PyDateTimeAPI->DeltaType)\r
-#define PyDelta_CheckExact(op) (Py_TYPE(op) == PyDateTimeAPI->DeltaType)\r
-\r
-#define PyTZInfo_Check(op) PyObject_TypeCheck(op, PyDateTimeAPI->TZInfoType)\r
-#define PyTZInfo_CheckExact(op) (Py_TYPE(op) == PyDateTimeAPI->TZInfoType)\r
-\r
-/* Macros for accessing constructors in a simplified fashion. */\r
-#define PyDate_FromDate(year, month, day) \\r
-    PyDateTimeAPI->Date_FromDate(year, month, day, PyDateTimeAPI->DateType)\r
-\r
-#define PyDateTime_FromDateAndTime(year, month, day, hour, min, sec, usec) \\r
-    PyDateTimeAPI->DateTime_FromDateAndTime(year, month, day, hour, \\r
-        min, sec, usec, Py_None, PyDateTimeAPI->DateTimeType)\r
-\r
-#define PyTime_FromTime(hour, minute, second, usecond) \\r
-    PyDateTimeAPI->Time_FromTime(hour, minute, second, usecond, \\r
-        Py_None, PyDateTimeAPI->TimeType)\r
-\r
-#define PyDelta_FromDSU(days, seconds, useconds) \\r
-    PyDateTimeAPI->Delta_FromDelta(days, seconds, useconds, 1, \\r
-        PyDateTimeAPI->DeltaType)\r
-\r
-/* Macros supporting the DB API. */\r
-#define PyDateTime_FromTimestamp(args) \\r
-    PyDateTimeAPI->DateTime_FromTimestamp( \\r
-        (PyObject*) (PyDateTimeAPI->DateTimeType), args, NULL)\r
-\r
-#define PyDate_FromTimestamp(args) \\r
-    PyDateTimeAPI->Date_FromTimestamp( \\r
-        (PyObject*) (PyDateTimeAPI->DateType), args)\r
-\r
-#endif  /* Py_BUILD_CORE */\r
-\r
-#ifdef __cplusplus\r
-}\r
-#endif\r
-#endif\r