* ========== Copyright Header Begin ==========================================
* OpenSPARC T2 Processor File: ll_impl.h
* Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES.
* The above named program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public
* License version 2 as published by the Free Software Foundation.
* The above named program 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
* General Public License for more details.
* You should have received a copy of the GNU General Public
* License along with this work; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
* ========== Copyright Header End ============================================
* Copyright (C) 2001, Sun Microsystems, Inc.
#pragma ident "@(#)1.3 02/09/24 ll_impl.h"
#define LL_REG_ADDR_MASK 0x000000ff
#define LL_REG_SR 0x00000000 /* status */
#define LL_REG_CR 0x00000004 /* control */
#define LL_REG_ECR 0x00000008 /* errorcode */
#define LL_REG_ARG_ADDR 0x0000000c /* dma argument address */
#define LL_REG_RES_ADDR 0x00000010 /* dma result address */
#define LL_SR_BUSY 0x1 /* busy - command in progress */
#define LL_CR_RESERVED 0x1
#define LL_CR_GETATTR 0x4
#define LL_CR_SETATTR 0x5
#define LL_CR_READDIR 0xd
#define LL_CR_SYMLINK 0xe
#define LL_CR_READLINK 0xf
// 09/24/2002 SL The small size of names/paths caused blaze failure
// (SpecJBB, long file names produced by SpecJBB).
// The modification below requires coordinated modification
// of LLFS/LL solaris modules
#define LL_MAXPATHLEN 256
#define LL_MAXPATHLEN 1024
#define LL_MAXNAMELEN 512
char path
[LL_MAXPATHLEN
];
#define LL_XFER_SIZE 8192
uchar_t buf
[LL_XFER_SIZE
];
uchar_t buf
[LL_XFER_SIZE
];
enum ll_attr_type type
; /* file type */
uint32_t mode
; /* protection mode bits */
uint32_t nlink
; /* # hard links */
uint32_t uid
; /* User ID of the file's owner */
uint32_t gid
; /* Group ID of the file's owner */
uint64_t size
; /* file size in bytes */
int32_t atime
; /* time of last access */
int32_t mtime
; /* time of last data modification */
int32_t ctime
; /* time of last status change */
uint32_t ino
; /* inode number */
#define LL_MASK_ATIME 0x10
#define LL_MASK_MTIME 0x20
#define LL_AMODE_READ 0x1
#define LL_AMODE_WRITE 0x2
#define LL_AMODE_EXEC 0x4
struct ll_fhandle dir_fh
;
char name
[LL_MAXNAMELEN
];
enum ll_attr_type type
; /* file type */
struct ll_fhandle dir_fh
;
char name
[LL_MAXNAMELEN
];
struct ll_fhandle dir_fh
;
char name
[LL_MAXNAMELEN
];
struct ll_fhandle odir_fh
;
char oname
[LL_MAXNAMELEN
];
struct ll_fhandle ndir_fh
;
char nname
[LL_MAXNAMELEN
];
struct ll_fhandle dir_fh
;
char name
[LL_MAXNAMELEN
];
struct ll_fhandle dir_fh
;
char name
[LL_MAXNAMELEN
];
#define LL_DB_XFER_SIZE 1024
uchar_t buf
[LL_DB_XFER_SIZE
];
struct ll_fhandle dir_fh
;
char lname
[LL_MAXNAMELEN
];
char tname
[LL_MAXNAMELEN
];
char path
[LL_MAXPATHLEN
];
typedef struct ll_struct
{
uint32_t reg_sr
; /* status register */
uint32_t reg_cr
; /* command register */
uint32_t reg_ecr
; /* errorcode register */
uint32_t reg_arg_addr
; /* dma argument address register */
uint32_t reg_res_addr
; /* dma result address register */