diff options
author | Wei Wang <wvw@google.com> | 2018-02-26 14:02:53 -0800 |
---|---|---|
committer | Wei Wang <wvw@google.com> | 2018-02-26 14:13:51 -0800 |
commit | b2cf025c7d5cebd43084f38c6c7ff9cc17da428a (patch) | |
tree | 06e286adf2a464b39cf69d9ff9c91cad60d79772 /catapult/common/py_vulcanize/third_party/rcssmin/_setup/include/cext.h | |
parent | 3e601f2c29e63f5151aa982790deea52645bc6ea (diff) | |
download | chromium-trace-b2cf025c7d5cebd43084f38c6c7ff9cc17da428a.tar.gz |
Update to latest catapult (3fe65c60)android-9.0.0_r47android-9.0.0_r46android-9.0.0_r45android-9.0.0_r44android-9.0.0_r43android-9.0.0_r42android-9.0.0_r41android-9.0.0_r40android-9.0.0_r39android-9.0.0_r38android-9.0.0_r37android-9.0.0_r36android-9.0.0_r35android-9.0.0_r34android-9.0.0_r33android-9.0.0_r32android-9.0.0_r31android-9.0.0_r30android-9.0.0_r22android-9.0.0_r21android-9.0.0_r20android-9.0.0_r19android-9.0.0_r16android-9.0.0_r12android-9.0.0_r11pie-qpr3-s1-releasepie-qpr3-releasepie-qpr3-b-releasepie-qpr2-releasepie-qpr1-s3-releasepie-qpr1-s2-releasepie-qpr1-s1-releasepie-qpr1-releasepie-dr1-releasepie-dr1-devpie-devpie-b4s4-releasepie-b4s4-dev
Notable changes:
Add clk_set_rate support
Add clock state support
Bug: 73775767
Bug: 73795364
Test: ./systrace.py
Change-Id: Iafb25ba9750f0e4cea6c8278788d8837e4a8776a
Diffstat (limited to 'catapult/common/py_vulcanize/third_party/rcssmin/_setup/include/cext.h')
-rw-r--r-- | catapult/common/py_vulcanize/third_party/rcssmin/_setup/include/cext.h | 244 |
1 files changed, 244 insertions, 0 deletions
diff --git a/catapult/common/py_vulcanize/third_party/rcssmin/_setup/include/cext.h b/catapult/common/py_vulcanize/third_party/rcssmin/_setup/include/cext.h new file mode 100644 index 00000000..47b6f5b9 --- /dev/null +++ b/catapult/common/py_vulcanize/third_party/rcssmin/_setup/include/cext.h @@ -0,0 +1,244 @@ +/* + * Copyright 2006 - 2014 + * Andr\xe9 Malo or his licensors, as applicable + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * central naming stuff + */ + +#ifndef SETUP_CEXT_H +#define SETUP_CEXT_H + +#ifndef EXT_MODULE +#error EXT_MODULE must be defined outside of this file (-DEXT_MODULE=...) +#endif + +/* + * include core header files + */ +#define PY_SSIZE_T_CLEAN + +#include "Python.h" +#include "structmember.h" + +/* + * define our helper macros depending on the stuff above + */ +#define STRINGIFY(n) STRINGIFY_HELPER(n) +#define STRINGIFY_HELPER(n) #n +#define CONCATENATE(first, second) CONCATENATE_HELPER(first, second) +#define CONCATENATE_HELPER(first, second) first##second + +#define EXT_MODULE_NAME STRINGIFY(EXT_MODULE) +#ifdef EXT_PACKAGE +#define EXT_PACKAGE_NAME STRINGIFY(EXT_PACKAGE) +#define EXT_MODULE_PATH EXT_PACKAGE_NAME "." EXT_MODULE_NAME +#else +#define EXT_PACKAGE_NAME "" +#define EXT_MODULE_PATH EXT_MODULE_NAME +#endif + +#define EXT_DOCS_VAR CONCATENATE(var, CONCATENATE(EXT_MODULE, __doc__)) +#define EXT_METHODS_VAR CONCATENATE(var, CONCATENATE(EXT_MODULE, _methods)) +#define EXT_METHODS static PyMethodDef EXT_METHODS_VAR[] + +#define EXT_DEFINE_VAR CONCATENATE(var, CONCATENATE(EXT_MODULE, _module)) + +/* Py3K Support */ +#if PY_MAJOR_VERSION >= 3 + +#define EXT3 + +#ifndef PyMODINIT_FUNC +#define EXT_INIT_FUNC PyObject *CONCATENATE(PyInit_, EXT_MODULE)(void) +#else +#define EXT_INIT_FUNC PyMODINIT_FUNC CONCATENATE(PyInit_, EXT_MODULE)(void) +#endif + +#define EXT_DEFINE(name, methods, doc) \ +static struct PyModuleDef EXT_DEFINE_VAR = { \ + PyModuleDef_HEAD_INIT, \ + name, \ + doc, \ + -1, \ + methods, \ + NULL, \ + NULL, \ + NULL, \ + NULL \ +} + +#define EXT_CREATE(def) (PyModule_Create(def)) +#define EXT_INIT_ERROR(module) do {Py_XDECREF(module); return NULL;} while(0) +#define EXT_INIT_RETURN(module) return module + +#else /* end py3k */ + +#define EXT2 + +#ifndef PyMODINIT_FUNC +#define EXT_INIT_FUNC void CONCATENATE(init, EXT_MODULE)(void) +#else +#define EXT_INIT_FUNC PyMODINIT_FUNC CONCATENATE(init, EXT_MODULE)(void) +#endif + +#define EXT_DEFINE__STRUCT \ + CONCATENATE(struct, CONCATENATE(EXT_MODULE, _module)) + +struct EXT_DEFINE__STRUCT { + char *m_name; + char *m_doc; + PyMethodDef *m_methods; +}; +#define EXT_DEFINE(name, methods, doc) \ +static struct EXT_DEFINE__STRUCT EXT_DEFINE_VAR = { \ + name, \ + doc, \ + methods \ +} + +#define EXT_CREATE(def) ((def)->m_doc \ + ? Py_InitModule3((def)->m_name, (def)->m_methods, (def)->m_doc) \ + : Py_InitModule((def)->m_name, (def)->m_methods) \ +) +#define EXT_INIT_ERROR(module) return +#define EXT_INIT_RETURN(module) return + +#endif /* end py2K */ + +#define EXT_INIT_TYPE(module, type) do { \ + if (PyType_Ready(type) < 0) \ + EXT_INIT_ERROR(module); \ +} while (0) + +#define EXT_ADD_TYPE(module, name, type) do { \ + Py_INCREF(type); \ + if (PyModule_AddObject(module, name, (PyObject *)(type)) < 0) \ + EXT_INIT_ERROR(module); \ +} while (0) + +#define EXT_ADD_UNICODE(module, name, string, encoding) do { \ + if (PyModule_AddObject( \ + module, \ + name, \ + PyUnicode_Decode( \ + string, \ + sizeof(string) - 1, \ + encoding, \ + "strict" \ + )) < 0) \ + EXT_INIT_ERROR(module); \ +} while (0) + +#define EXT_ADD_STRING(module, name, string) do { \ + if (PyModule_AddStringConstant(module, name, string) < 0) \ + EXT_INIT_ERROR(module); \ +} while (0) + +#define EXT_ADD_INT(module, name, number) do { \ + if (PyModule_AddIntConstant(module, name, number) < 0) \ + EXT_INIT_ERROR(module); \ +} while (0) + + +/* PEP 353 support, implemented as of python 2.5 */ +#if PY_VERSION_HEX < 0x02050000 +typedef int Py_ssize_t; +#define PyInt_FromSsize_t(arg) PyInt_FromLong((long)arg) +#define PyInt_AsSsize_t(arg) (int)PyInt_AsLong(arg) +#define PY_SSIZE_T_MAX ((Py_ssize_t)INT_MAX) +#endif + +/* + * some helper macros (Python 2.4) + */ +#ifndef Py_VISIT +#define Py_VISIT(op) do { \ + if (op) { \ + int vret = visit((op), arg); \ + if (vret) return vret; \ + } \ +} while (0) +#endif + +#ifdef Py_CLEAR +#undef Py_CLEAR +#endif +#define Py_CLEAR(op) do { \ + if (op) { \ + PyObject *tmp__ = (PyObject *)(op); \ + (op) = NULL; \ + Py_DECREF(tmp__); \ + } \ +} while (0) + +#ifndef Py_RETURN_NONE +#define Py_RETURN_NONE return Py_INCREF(Py_None), Py_None +#endif + +#ifndef Py_RETURN_FALSE +#define Py_RETURN_FALSE return Py_INCREF(Py_False), Py_False +#endif + +#ifndef Py_RETURN_TRUE +#define Py_RETURN_TRUE return Py_INCREF(Py_True), Py_True +#endif + +/* Macros for inline documentation. (Python 2.3) */ +#ifndef PyDoc_VAR +#define PyDoc_VAR(name) static char name[] +#endif + +#ifndef PyDoc_STRVAR +#define PyDoc_STRVAR(name,str) PyDoc_VAR(name) = PyDoc_STR(str) +#endif + +#ifndef PyDoc_STR +#ifdef WITH_DOC_STRINGS +#define PyDoc_STR(str) str +#else +#define PyDoc_STR(str) "" +#endif +#endif + +/* Basestring check (basestring introduced in Python 2.3) */ +#if PY_VERSION_HEX < 0x02030000 +#define BaseString_Check(type) ( \ + PyObject_TypeCheck((type), &PyString_Type) \ + || PyObject_TypeCheck((type), &PyUnicode_Type) \ +) +#else +#define BaseString_Check(type) PyObject_TypeCheck((type), &PyBaseString_Type) +#endif + +#define GENERIC_ALLOC(type) \ + ((void *)((PyTypeObject *)type)->tp_alloc(type, (Py_ssize_t)0)) + +/* PyPy doesn't define it */ +#ifndef PyType_IS_GC +#define PyType_IS_GC(t) PyType_HasFeature((t), Py_TPFLAGS_HAVE_GC) +#endif + +#define DEFINE_GENERIC_DEALLOC(prefix) \ +static void prefix##_dealloc(void *self) \ +{ \ + if (PyType_IS_GC(((PyObject *)self)->ob_type)) \ + PyObject_GC_UnTrack(self); \ + (void)prefix##_clear(self); \ + ((PyObject *)self)->ob_type->tp_free((PyObject *)self); \ +} + +#endif /* SETUP_CEXT_H */ |