Loading...
Searching...
No Matches
address.c File Reference

Address routines. More...

`#include "local_proto.h"`
Include dependency graph for address.c:

Go to the source code of this file.

## Macros

#define | SEG_N_ROW_NONZERO(SEG, row, col)
#define | SEG_INDEX_ROW_NONZERO(SEG, row, col)
#define | SEG_N_ROW_ZERO(SEG, col)
#define | SEG_INDEX_ROW_ZERO(SEG, col)
#define | INDEX_ADJ(SEG, i)

## Functions

int | seg_address_fast (const SEGMENT *SEG, off_t row, off_t col, int *n, int *index)
int | seg_address_slow (const SEGMENT *SEG, off_t row, off_t col, int *n, int *index)
int | seg_address (const SEGMENT *SEG, off_t row, off_t col, int *n, int *index)
| Internal use only.

## Detailed Description

Address routines.

This program is free software under the GNU General Public License (>=v2). Read the file COPYING that comes with GRASS for details.

Author
  GRASS Development Team

Date
  2005-2009

Definition in file address.c.

## Macro Definition Documentation

## INDEX_ADJ

#define INDEX_ADJ | ( |  | SEG,
|  |  | i )

Value:
((SEG)->fast_seek ? ((i) << (SEG)->lenbits) : ((i) * (SEG)->len))

Definition at line 27 of file address.c.

Referenced by seg_address_fast().

## SEG_INDEX_ROW_NONZERO

#define SEG_INDEX_ROW_NONZERO | ( |  | SEG,
|  |  | row,
|  |  | col )

Value:
((((row) & ((SEG)->srows - 1)) << (SEG)->scolbits) + \
((col) & ((SEG)->scols - 1)))

Definition at line 19 of file address.c.

Referenced by seg_address_fast().

## SEG_INDEX_ROW_ZERO

#define SEG_INDEX_ROW_ZERO | ( |  | SEG,
|  |  | col )

Value:
((col) & ((SEG)->scols - 1))

Definition at line 25 of file address.c.

Referenced by seg_address_fast().

## SEG_N_ROW_NONZERO

#define SEG_N_ROW_NONZERO | ( |  | SEG,
|  |  | row,
|  |  | col )

Value:
(((row) >> (SEG)->srowbits) * (SEG)->spr + ((col) >> (SEG)->scolbits))

Definition at line 16 of file address.c.

Referenced by seg_address_fast().

## SEG_N_ROW_ZERO

#define SEG_N_ROW_ZERO | ( |  | SEG,
|  |  | col )

Value:
((col) >> (SEG)->scolbits)

Definition at line 23 of file address.c.

Referenced by seg_address_fast().

## Function Documentation

## seg_address()

int seg_address | ( | const SEGMENT * | SEG,
|  | off_t | row,
|  | off_t | col,
|  | int * | n,
|  | int * | index )

Internal use only.

Gets segment address and setsn and index.

Parameters

  [in] | SEG | segment
  [in] | row |
  [in] | col |
  [in,out] | n |
  [in,out] | index |

Returns
  always returns 0

Definition at line 107 of file address.c.

## seg_address_fast()

int seg_address_fast | ( | const SEGMENT * | SEG,
|  | off_t | row,
|  | off_t | col,
|  | int * | n,
|  | int * | index )

Definition at line 30 of file address.c.

References INDEX_ADJ, SEG_INDEX_ROW_NONZERO, SEG_INDEX_ROW_ZERO, SEG_N_ROW_NONZERO, and SEG_N_ROW_ZERO.

Referenced by seg_setup().

## seg_address_slow()

int seg_address_slow | ( | const SEGMENT * | SEG,
|  | off_t | row,
|  | off_t | col,
|  | int * | n,
|  | int * | index )

Definition at line 74 of file address.c.

Referenced by seg_setup().