#pragma once
#ifndef _uefi_protos_ip6_config_h_
#define _uefi_protos_ip6_config_h_

// This file was auto generated by the j6-uefi-headers project. Please see
// https://github.com/justinian/j6-uefi-headers for more information.

#include <uefi/guid.h>
#include <uefi/types.h>
#include <uefi/networking.h>

namespace uefi {
namespace protos {
struct ip6_config;

struct ip6_config
{
    static constexpr uefi::guid guid{ 0x937fe521,0x95ae,0x4d1a,{0x89,0x29,0x48,0xbc,0xd9,0x0a,0xd3,0x1a} };


    inline uefi::status set_data(uefi::ip6_config_data_type data_type, size_t data_size, void * data) {
        return _set_data(this, data_type, data_size, data);
    }

    inline uefi::status get_data(uefi::ip6_config_data_type data_type, size_t data_size, void * data) {
        return _get_data(this, data_type, data_size, data);
    }

    inline uefi::status register_data_notify(uefi::ip6_config_data_type data_type, uefi::event event) {
        return _register_data_notify(this, data_type, event);
    }

    inline uefi::status unregister_data_notify(uefi::ip6_config_data_type data_type, uefi::event event) {
        return _unregister_data_notify(this, data_type, event);
    }


protected:
    using _set_data_def = uefi::status (*)(uefi::protos::ip6_config *, uefi::ip6_config_data_type, size_t, void *);
    _set_data_def _set_data;

    using _get_data_def = uefi::status (*)(uefi::protos::ip6_config *, uefi::ip6_config_data_type, size_t, void *);
    _get_data_def _get_data;

    using _register_data_notify_def = uefi::status (*)(uefi::protos::ip6_config *, uefi::ip6_config_data_type, uefi::event);
    _register_data_notify_def _register_data_notify;

    using _unregister_data_notify_def = uefi::status (*)(uefi::protos::ip6_config *, uefi::ip6_config_data_type, uefi::event);
    _unregister_data_notify_def _unregister_data_notify;

public:
};

} // namespace protos
} // namespace uefi

#endif // _uefi_protos_ip6_config_h_