This file is indexed.

/usr/include/gpsim/p16x5x.h is in gpsim-dev 0.26.1-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
130
131
132
/*
   Copyright (C) 2000,2001 T. Scott Dattalo, Daniel Schudel, Robert Pearce

This file is part of the libgpsim library of gpsim

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see 
<http://www.gnu.org/licenses/lgpl-2.1.html>.
*/


//
// p16x5x
//
//  This file supports:
//    P16C54
//    P16C55
//    P16C56

#ifndef __P16X5X_H__
#define __P16X5X_H__

#include "packages.h"
#include "stimuli.h"
#include "12bit-processors.h"

class PicPortRegister;
class PicTrisRegister;
class PicLatchRegister;


class P16C54 : public  _12bit_processor
{
public:
  PicPortRegister  *m_porta;
  PicTrisRegister  *m_trisa;

  PicPortRegister  *m_portb;
  PicTrisRegister  *m_trisb;

#ifdef USE_PIN_MODULE_FOR_TOCKI
  PinModule    *m_tocki;
#else
  PicPortRegister  *m_tocki;
  PicTrisRegister  *m_trist0;
#endif
  
  virtual PROCESSOR_TYPE isa(){return _P16C54_;};
  virtual void create_symbols();

  virtual unsigned int program_memory_size() const { return 0x200; };
  virtual unsigned int register_memory_size() const { return 0x20; };
  virtual unsigned int config_word_address() const {return 0xFFF;};

  virtual void create_sfr_map();

  virtual void option_new_bits_6_7(unsigned int bits) {}

  P16C54(const char *_name=0, const char *desc=0);
  virtual ~P16C54();
  void create();
  virtual void create_iopin_map();

  static Processor *construct(const char *name);
  virtual void tris_instruction(unsigned int tris_register);

  virtual unsigned int fsr_valid_bits()
    {
      return 0x1f;  // Only 32 register addresses 
    }

  virtual unsigned int fsr_register_page_bits()
    {
      return 0;     // Only one register page.
    }


};

class P16C55 : public  P16C54
{
public:

  PicPortRegister  *m_portc;
  PicTrisRegister  *m_trisc;

  virtual PROCESSOR_TYPE isa(){return _P16C55_;};
  virtual void create_symbols();

  virtual unsigned int program_memory_size() const { return 0x200; };
  virtual unsigned int register_memory_size() const { return 0x20; };
  virtual unsigned int config_word_address() const {return 0xFFF;};

  virtual void create_sfr_map();

  P16C55(const char *_name=0, const char *desc=0);
  virtual ~P16C55();
  virtual void create();
  virtual void create_iopin_map();

  static Processor *construct(const char *name);
  virtual void tris_instruction(unsigned int tris_register);

};

class P16C56 : public  P16C54
{
public:

  virtual PROCESSOR_TYPE isa(){return _P16C56_;};

  virtual unsigned int program_memory_size() const { return 0x400; };
  virtual unsigned int register_memory_size() const { return 0x20; };
  virtual unsigned int config_word_address() const {return 0xFFF;};

  P16C56(const char *_name=0, const char *desc=0);

  static Processor *construct(const char *name);

};

#endif