Home | History | Annotate | Download | only in src
      1 /* ------------------------------------------------------------------
      2  * Copyright (C) 1998-2009 PacketVideo
      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
     13  * express or implied.
     14  * See the License for the specific language governing permissions
     15  * and limitations under the License.
     16  * -------------------------------------------------------------------
     17  */
     18 
     19 #ifndef OSCL_INT64_UTILS_H_INCLUDED
     20 #define OSCL_INT64_UTILS_H_INCLUDED
     21 
     22 #ifndef OSCL_BASE_H_INCLUDED
     23 #include "oscl_base.h"
     24 #endif
     25 
     26 //! The Oscl_Int64_Utils class provides a wrapper for commonly used int64/uint64 operations
     27 /*!
     28  * The Oscl_Int64_Utils class:
     29  *
     30  * Provides a wrapper for commonly used operations to mask the differences between OSes
     31  * that have an int64/uint64 class instead of a 64-bit integer.
     32  */
     33 class Oscl_Int64_Utils
     34 {
     35     public:
     36         OSCL_IMPORT_REF static void set_int64(int64& input_value, const int32 upper, const int32 lower);
     37 
     38         OSCL_IMPORT_REF static int32 get_int64_upper32(const int64& input_value);
     39 
     40         OSCL_IMPORT_REF static int32 get_int64_lower32(const int64& input_value);
     41 
     42         OSCL_IMPORT_REF static int32 get_int64_middle32(const int64& input_value);
     43 
     44         OSCL_IMPORT_REF static void set_uint64(uint64& input_value, const uint32 upper, const uint32 lower);
     45 
     46         OSCL_IMPORT_REF static uint32 get_uint64_upper32(const uint64& input_value);
     47 
     48         OSCL_IMPORT_REF static uint32 get_uint64_lower32(const uint64& input_value);
     49 
     50         OSCL_IMPORT_REF static uint32 get_uint64_middle32(const uint64& input_value);
     51 };
     52 
     53 /**
     54  * OsclInteger64Transport Structure
     55  *
     56  * Structure to only transport 64-bit integer values
     57  * uint64 and int64 could be classes so needed for cases
     58  * where having a class will not work.
     59  */
     60 typedef struct OsclInteger64Transport
     61 {
     62     uint32 iHigh;
     63     uint32 iLow;
     64 } _OsclInteger64Transport;
     65 
     66 #endif
     67 
     68