OpenSSD Cosmos+ Platform Firmware  0.0.2
The firmware of Cosmos+ OpenSSD Platform for TOSHIBA nand flash module.
request_queue.h
Go to the documentation of this file.
1
2// request_queue.h for Cosmos+ OpenSSD
3// Copyright (c) 2017 Hanyang University ENC Lab.
4// Contributed by Yong Ho Song <yhsong@enc.hanyang.ac.kr>
5// Jaewook Kwak <jwkwak@enc.hanyang.ac.kr>
6//
7// This file is part of Cosmos+ OpenSSD.
8//
9// Cosmos+ OpenSSD is free software; you can redistribute it and/or modify
10// it under the terms of the GNU General Public License as published by
11// the Free Software Foundation; either version 3, or (at your option)
12// any later version.
13//
14// Cosmos+ OpenSSD is distributed in the hope that it will be useful,
15// but WITHOUT ANY WARRANTY; without even the implied warranty of
16// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
17// See the GNU General Public License for more details.
18//
19// You should have received a copy of the GNU General Public License
20// along with Cosmos+ OpenSSD; see the file COPYING.
21// If not, see <http://www.gnu.org/licenses/>.
23
25// Company: ENC Lab. <http://enc.hanyang.ac.kr>
26// Engineer: Jaewook Kwak <jwkwak@enc.hanyang.ac.kr>
27//
28// Project Name: Cosmos+ OpenSSD
29// Design Name: Cosmos+ Firmware
30// Module Name: Request Allocator
31// File Name: request_queue.h
32//
33// Version: v1.0.0
34//
35// Description:
36// - define data structure of request queue
38
40// Revision History:
41//
42// * v1.0.0
43// - First draft
45#ifndef REQUEST_QUEUE_H_
46#define REQUEST_QUEUE_H_
47
48// TODO these structures are exactly the same, should be simplified into 1 structure
49
50typedef struct _FREE_REQUEST_QUEUE
51{
52 unsigned int headReq : 16;
53 unsigned int tailReq : 16;
54 unsigned int reqCnt : 16;
55 unsigned int reserved0 : 16;
57
59{
60 unsigned int headReq : 16;
61 unsigned int tailReq : 16;
62 unsigned int reqCnt : 16;
63 unsigned int reserved0 : 16;
65
67{
68 unsigned int headReq : 16;
69 unsigned int tailReq : 16;
70 unsigned int reqCnt : 16;
71 unsigned int reserved0 : 16;
73
75{
76 unsigned int headReq : 16;
77 unsigned int tailReq : 16;
78 unsigned int reqCnt : 16;
79 unsigned int reserved0 : 16;
81
83{
84 unsigned int headReq : 16;
85 unsigned int tailReq : 16;
86 unsigned int reqCnt : 16;
87 unsigned int reserved0 : 16;
89
90typedef struct _NAND_REQUEST_QUEUE
91{
92 unsigned int headReq : 16;
93 unsigned int tailReq : 16;
94 unsigned int reqCnt : 16;
95 unsigned int reserved0 : 16;
97
98#endif /* REQUEST_QUEUE_H_ */
struct _NAND_REQUEST_QUEUE * P_NAND_REQUEST_QUEUE
struct _SLICE_REQUEST_QUEUE SLICE_REQUEST_QUEUE
struct _BLOCKED_BY_ROW_ADDR_DEPENDENCY_REQUEST_QUEUE * PBLOCKED_BY_ROW_ADDR_DEPENDENCY_REQUEST_QUEUE
struct _FREE_REQUEST_QUEUE FREE_REQUEST_QUEUE
struct _SLICE_REQUEST_QUEUE * P_SLICE_REQUEST_QUEUE
struct _NVME_DMA_REQUEST_QUEUE NVME_DMA_REQUEST_QUEUE
struct _BLOCKED_BY_BUFFER_DEPENDENCY_REQUEST_QUEUE * P_BLOCKED_BY_BUFFER_DEPENDENCY_REQUEST_QUEUE
struct _NVME_DMA_REQUEST_QUEUE * P_NVME_DMA_REQUEST_QUEUE
struct _BLOCKED_BY_ROW_ADDR_DEPENDENCY_REQUEST_QUEUE BLOCKED_BY_ROW_ADDR_DEPENDENCY_REQUEST_QUEUE
struct _NAND_REQUEST_QUEUE NAND_REQUEST_QUEUE
struct _FREE_REQUEST_QUEUE * P_FREE_REQUEST_QUEUE
struct _BLOCKED_BY_BUFFER_DEPENDENCY_REQUEST_QUEUE BLOCKED_BY_BUFFER_DEPENDENCY_REQUEST_QUEUE
unsigned int reserved0
Definition: request_queue.h:55
unsigned int reqCnt
Definition: request_queue.h:54
unsigned int headReq
Definition: request_queue.h:52
unsigned int tailReq
Definition: request_queue.h:53
unsigned int tailReq
Definition: request_queue.h:93
unsigned int headReq
Definition: request_queue.h:92
unsigned int reserved0
Definition: request_queue.h:95
unsigned int reqCnt
Definition: request_queue.h:94
unsigned int reserved0
Definition: request_queue.h:63
unsigned int headReq
Definition: request_queue.h:60
unsigned int reqCnt
Definition: request_queue.h:62
unsigned int tailReq
Definition: request_queue.h:61