Home | History | Annotate | Download | only in inc
      1 /*
      2  * Copyright (C) 2011 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 #ifndef MARKER_H
     17 #define MARKER_H
     18 
     19 #define ADD_CODE_MARKER_FUN(m_condition)                    \
     20     if ( !(m_condition) )                                   \
     21     {                                                       \
     22         __asm__ volatile (                                  \
     23             ".word     0x21614062\n\t"      /* '!a@b' */    \
     24             ".word     0x47712543\n\t"      /* 'Gq%C' */    \
     25             ".word     0x5F5F5F43\n\t"      /* '___C' */    \
     26             ".word     0x5F5F5F5F\n\t"      /* '____' */    \
     27             ".word     0x245F5F5F"          /* '$___' */    \
     28         );                                                  \
     29     }
     30 
     31 #define ADD_TEXT_MARKER_FUN(m_condition)                    \
     32     if ( !(m_condition) )                                   \
     33     {                                                       \
     34         __asm__ volatile (                                  \
     35             ".word     0x21614062\n\t"      /* '!a@b' */    \
     36             ".word     0x47712543\n\t"      /* 'Gq%C' */    \
     37             ".word     0x5F5F5F54\n\t"      /* '___T' */    \
     38             ".word     0x5F5F5F5F\n\t"      /* '____' */    \
     39             ".word     0x5F5F5F5F\n\t"      /* '____' */    \
     40             ".word     0x5F5F5F5F\n\t"      /* '____' */    \
     41             ".word     0x5F5F5F5F\n\t"      /* '____' */    \
     42             ".word     0x5F5F5F5F\n\t"      /* '____' */    \
     43             ".word     0x5F5F5F5F\n\t"      /* '____' */    \
     44             ".word     0x5F5F5F5F\n\t"      /* '____' */    \
     45             ".word     0x5F5F5F5F\n\t"      /* '____' */    \
     46             ".word     0x5F5F5F5F\n\t"      /* '____' */    \
     47             ".word     0x5F5F5F5F\n\t"      /* '____' */    \
     48             ".word     0x5F5F5F5F\n\t"      /* '____' */    \
     49             ".word     0x5F5F5F5F\n\t"      /* '____' */    \
     50             ".word     0x5F5F5F5F\n\t"      /* '____' */    \
     51             ".word     0x5F5F5F5F\n\t"      /* '____' */    \
     52             ".word     0x5F5F5F5F\n\t"      /* '____' */    \
     53             ".word     0x5F5F5F5F\n\t"      /* '____' */    \
     54             ".word     0x5F5F5F5F\n\t"      /* '____' */    \
     55             ".word     0x5F5F5F5F\n\t"      /* '____' */    \
     56             ".word     0x5F5F5F5F\n\t"      /* '____' */    \
     57             ".word     0x5F5F5F5F\n\t"      /* '____' */    \
     58             ".word     0x5F5F5F5F\n\t"      /* '____' */    \
     59             ".word     0x5F5F5F5F\n\t"      /* '____' */    \
     60             ".word     0x5F5F5F5F\n\t"      /* '____' */    \
     61             ".word     0x5F5F5F5F\n\t"      /* '____' */    \
     62             ".word     0x5F5F5F5F\n\t"      /* '____' */    \
     63             ".word     0x5F5F5F5F\n\t"      /* '____' */    \
     64             ".word     0x5F5F5F5F\n\t"      /* '____' */    \
     65             ".word     0x5F5F5F5F\n\t"      /* '____' */    \
     66             ".word     0x5F5F5F5F\n\t"      /* '____' */    \
     67             ".word     0x5F5F5F5F\n\t"      /* '____' */    \
     68             ".word     0x5F5F5F5F\n\t"      /* '____' */    \
     69             ".word     0x5F5F5F5F\n\t"      /* '____' */    \
     70             ".word     0x5F5F5F5F\n\t"      /* '____' */    \
     71             ".word     0x5F5F5F5F\n\t"      /* '____' */    \
     72             ".word     0x5F5F5F5F\n\t"      /* '____' */    \
     73             ".word     0x5F5F5F5F\n\t"      /* '____' */    \
     74             ".word     0x245F5F5F"          /* '$___' */    \
     75         );                                                  \
     76     }
     77 
     78 #endif
     79