!C99Shell v. 1.0 pre-release build #13!

Software: Apache/2.0.54 (Unix) mod_perl/1.99_09 Perl/v5.8.0 mod_ssl/2.0.54 OpenSSL/0.9.7l DAV/2 FrontPage/5.0.2.2635 PHP/4.4.0 mod_gzip/2.0.26.1a 

uname -a: Linux snow.he.net 4.4.276-v2-mono-1 #1 SMP Wed Jul 21 11:21:17 PDT 2021 i686 

uid=99(nobody) gid=98(nobody) groups=98(nobody) 

Safe-mode: OFF (not secure)

/usr/src/linux-2.4.18-xfs-1.1/include/asm-ia64/sn/   drwxr-xr-x
Free 318.36 GB of 458.09 GB (69.5%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     alenlist.h (6.15 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* $Id$
 *
 * This file is subject to the terms and conditions of the GNU General Public
 * License.  See the file "COPYING" in the main directory of this archive
 * for more details.
 *
 * Copyright (C) 1992 - 1997, 2000 Silicon Graphics, Inc.
 * Copyright (C) 2000 by Colin Ngam
 */
#ifndef _ASM_SN_ALENLIST_H
#define _ASM_SN_ALENLIST_H

/* Definition of Address/Length List */

/*
 * An Address/Length List is used when setting up for an I/O DMA operation.
 * A driver creates an Address/Length List that describes to the the DMA 
 * interface where in memory the DMA should go.  The bus interface sets up 
 * mapping registers, if required, and returns a suitable list of "physical 
 * addresses" or "I/O address" to the driver.  The driver then uses these 
 * to set up an appropriate scatter/gather operation(s).
 */

#ifdef __cplusplus
extern "C" {
#endif

/*
 * An Address/Length List Address.  It'll get cast to the appropriate type,
 * and must be big enough to hold the largest possible address in any
 * supported address space.
 */
typedef u64 alenaddr_t;
typedef u64 uvaddr_t;

typedef struct alenlist_s *alenlist_t;

/* 
 * For tracking progress as we walk down an address/length list.
 */
typedef struct alenlist_cursor_s *alenlist_cursor_t;

/*
 * alenlist representation that can be passed via an idl
 */
struct external_alenlist {
    alenaddr_t    addr;
    size_t        len;
};
typedef struct external_alenlist *external_alenlist_t;


/* Return codes from alenlist routines.  */
#define ALENLIST_FAILURE -1
#define ALENLIST_SUCCESS 0


/* Flags to alenlist routines */
#define AL_NOSLEEP    0x01        /* Do not sleep, waiting for memory */
#define AL_NOCOMPACT    0x02        /* Do not try to compact adjacent entries */
#define AL_LEAVE_CURSOR    0x04        /* Do not update cursor */


/* Create an Address/Length List, and clear it of all entries.  */
extern alenlist_t alenlist_create(unsigned flags);

/* Grow/shrink an Address/Length List and FIX its size. */
extern int alenlist_grow(alenlist_t, size_t npairs);

/* Clear an Address/Length List so that it now describes 0 pairs. */
extern void alenlist_clear(alenlist_t alenlist);

/*
 * Convenience function to create an Address/Length List and then append 
 * the specified Address/Length Pair.  Exactly the same as alenlist_create 
 * followed by alenlist_append.  Can be used when a small list (e.g. 1 pair)
 * is adequate.
 */
extern alenlist_t
alenpair_init(    alenaddr_t address,             /* init to this address */
        size_t length);                /* init to this length */

/* 
 * Peek at the head of an Address/Length List.  This does *NOT* update
 * the internal cursor.
 */
extern int
alenpair_get(    alenlist_t alenlist,        /* in: get from this List */
        alenaddr_t *address,        /* out: address */
        size_t *length);        /* out: length */

/* Free the space consumed by an Address/Length List. */
extern void alenlist_destroy(alenlist_t alenlist);

/*
 * Indicate that we're done using an Address/Length List.
 * If we are the last user, destroy the List.
 */
extern void
alenlist_done(alenlist_t alenlist);

/* Append another Pair to a List */
extern int alenlist_append(alenlist_t alenlist,     /* append to this list */
            alenaddr_t address,        /* address to append */
            size_t length,            /* length to append */
            unsigned flags);

/* 
 * Replace a Pair in the middle of a List, and return old values.
 * (not generally useful for drivers; used by bus providers).
 */
extern int
alenlist_replace(    alenlist_t alenlist,         /* in: replace in this list */
            alenlist_cursor_t cursorp,    /* inout: which item to replace */
            alenaddr_t *addrp,         /* inout: address */
            size_t *lengthp,        /* inout: length */
            unsigned flags);


/* Get the next Pair from a List */
extern int alenlist_get(alenlist_t alenlist,         /* in: get from this list */
            alenlist_cursor_t cursorp,    /* inout: which item to get */
            size_t maxlength,        /* in: at most length */
            alenaddr_t *addr,         /* out: address */
            size_t *length,            /* out: length */
            unsigned flags);


/* Return the number of Pairs stored in this List */
extern int alenlist_size(alenlist_t alenlist);

/* Concatenate two Lists. */
extern void alenlist_concat(    alenlist_t from,     /* copy from this list */
                alenlist_t to);        /* to this list */

/* Create a copy of an Address/Length List */
extern alenlist_t alenlist_clone(alenlist_t old,    /* clone this list */
                 unsigned flags);


/* Allocate and initialize an Address/Length List Cursor */
extern alenlist_cursor_t alenlist_cursor_create(alenlist_t alenlist, unsigned flags);

/* Free an Address/Length List Cursor */
extern void alenlist_cursor_destroy(alenlist_cursor_t cursorp);

/*
 * Initialize an Address/Length List Cursor in order to walk thru an
 * Address/Length List from the beginning.
 */
extern int alenlist_cursor_init(alenlist_t alenlist, 
                size_t offset, 
                alenlist_cursor_t cursorp);

/* Clone an Address/Length List Cursor. */
extern int alenlist_cursor_clone(alenlist_t alenlist, 
                alenlist_cursor_t cursorp_in, 
                alenlist_cursor_t cursorp_out);

/* 
 * Return the number of bytes passed so far according to the specified
 * Address/Length List Cursor.
 */
extern size_t alenlist_cursor_offset(alenlist_t alenlist, alenlist_cursor_t cursorp);




/* Convert from a Kernel Virtual Address to a Physical Address/Length List */
extern alenlist_t kvaddr_to_alenlist(    alenlist_t alenlist, 
                    caddr_t kvaddr, 
                    size_t length, 
                    unsigned flags);

/* Convert from a User Virtual Address to a Physical Address/Length List */
extern alenlist_t uvaddr_to_alenlist(    alenlist_t alenlist,
                    uvaddr_t vaddr, 
                    size_t length,
                    unsigned flags);

/* Convert from a buf struct to a Physical Address/Length List */
struct buf;
extern alenlist_t buf_to_alenlist(    alenlist_t alenlist, 
                    struct buf *buf, 
                    unsigned flags);


/* 
 * Tracking position as we walk down an Address/Length List.
 * This structure is NOT generally for use by device drivers.
 */
struct alenlist_cursor_s {
    struct alenlist_s    *al_alenlist;    /* which list */
    size_t            al_offset;    /* total bytes passed by cursor */
    struct alenlist_chunk_s    *al_chunk;    /* which chunk in alenlist */
    unsigned int        al_index;    /* which pair in chunk */
    size_t            al_bcount;    /* offset into address/length pair */
};

#ifdef __cplusplus
}
#endif

#endif /* _ASM_SN_ALENLIST_H */

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0046 ]--