Skip to content
Snippets Groups Projects
data.h 1.25 KiB
Newer Older
  • Learn to ignore specific revisions
  • Jonathan Schöbel's avatar
    Jonathan Schöbel committed
    /*
     * data.h
     *
     * Copyright 2022 Jonathan Schöbel <jonathan@Ubermos-2019>
     *
     * This program is free software; you can redistribute it and/or modify
     * it under the terms of the GNU General Public License as published by
     * the Free Software Foundation; either version 2 of the License, or
     * (at your option) any later version.
     *
     * This 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 program; if not, write to the Free Software
     * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
     * MA 02110-1301, USA.
     *
     *
     */
    
    
    #ifndef _DATA_H
    #define _DATA_H
    
    
    Jonathan Schöbel's avatar
    Jonathan Schöbel committed
    #include <limits.h>
    
    Jonathan Schöbel's avatar
    Jonathan Schöbel committed
    typedef unsigned int page_t;
    #define PAGE_MIN 0
    #define PAGE_MAX UINT_MAX
    #define NEXT_PAGE(page) page++
    
    struct SH_Page
    {
    	page_t id;
    	char * name;
    };
    
    
    Jonathan Schöbel's avatar
    Jonathan Schöbel committed
    struct SH_Data
    {
    
    Jonathan Schöbel's avatar
    Jonathan Schöbel committed
    	unsigned int page_n;
    	struct SH_Page * pages;
    	page_t page_next;
    
    Jonathan Schöbel's avatar
    Jonathan Schöbel committed
    };
    
    struct SH_Data * SH_Data_new ();
    void SH_Data_free (struct SH_Data * data);
    
    
    Jonathan Schöbel's avatar
    Jonathan Schöbel committed
    
    page_t SH_Data_register_page (struct SH_Data * data, const char * name);
    
    
    Jonathan Schöbel's avatar
    Jonathan Schöbel committed
    #endif /* _DATA_H */